From 928ab2a98a8ee504f7570794a5ba84b0514f4b77 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Mon, 8 Dec 2025 21:13:49 +0900 Subject: [PATCH] fixup! WIP --- tests/queries/test_search_user.py | 78 +++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 tests/queries/test_search_user.py diff --git a/tests/queries/test_search_user.py b/tests/queries/test_search_user.py new file mode 100644 index 0000000..f09eec8 --- /dev/null +++ b/tests/queries/test_search_user.py @@ -0,0 +1,78 @@ +from sqlalchemy.orm import Session + +from dibbler.models import User +from dibbler.queries.search_user import search_user + +USER = [ + ("alice", 123), + ("bob", 125), + ("charlie", 126), + ("david", 127), + ("eve", 128), + ("evey", 129), + ("evy", 130), + ("-symbol-man", 131), + ("user_123", 132), +] + + +def setup_users(sql_session: Session) -> None: + for username, rfid in USER: + user = User(name=username, rfid=str(rfid)) + sql_session.add(user) + sql_session.commit() + + +def test_search_user_exact_match(sql_session: Session) -> None: + setup_users(sql_session) + + user = search_user("alice", sql_session) + assert user is not None + assert isinstance(user, User) + assert user.name == "alice" + + user = search_user("125", sql_session) + assert user is not None + assert isinstance(user, User) + assert user.name == "bob" + + +def test_search_user_partial_match(sql_session: Session) -> None: + setup_users(sql_session) + + users = search_user("ev", sql_session) + assert isinstance(users, list) + assert len(users) == 3 + names = {user.name for user in users} + assert names == {"eve", "evey", "evy"} + + users = search_user("user", sql_session) + assert isinstance(users, list) + assert len(users) == 1 + assert users[0].name == "user_123" + + +def test_search_user_no_match(sql_session: Session) -> None: + setup_users(sql_session) + + result = search_user("nonexistent", sql_session) + assert isinstance(result, list) + assert len(result) == 0 + + +def test_search_user_special_characters(sql_session: Session) -> None: + setup_users(sql_session) + + user = search_user("-symbol-man", sql_session) + assert user is not None + assert isinstance(user, User) + assert user.name == "-symbol-man" + + +def test_search_by_rfid(sql_session: Session) -> None: + setup_users(sql_session) + + user = search_user("130", sql_session) + assert user is not None + assert isinstance(user, User) + assert user.name == "evy"