tests: add tests for all queries
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from worblehat.models import Author
|
||||
from worblehat.queries.author import search_authors_by_name
|
||||
|
||||
|
||||
def test_search_authors_by_name_matches_substring_case_insensitively(sql_session: Session) -> None:
|
||||
tolkien = Author(name="J.R.R. Tolkien")
|
||||
orwell = Author(name="George Orwell")
|
||||
sql_session.add_all([tolkien, orwell])
|
||||
sql_session.flush()
|
||||
|
||||
result = search_authors_by_name(sql_session, "tolkien")
|
||||
|
||||
assert result == [tolkien]
|
||||
|
||||
|
||||
def test_search_authors_by_name_returns_empty_when_no_match(sql_session: Session) -> None:
|
||||
sql_session.add(Author(name="Roald Dahl"))
|
||||
sql_session.flush()
|
||||
|
||||
result = search_authors_by_name(sql_session, "nonexistent")
|
||||
|
||||
assert result == []
|
||||
|
||||
|
||||
def test_search_authors_by_name_returns_all_matches(sql_session: Session) -> None:
|
||||
tolkien = Author(name="J.R.R. Tolkien")
|
||||
orwell = Author(name="George Orwell")
|
||||
dahl = Author(name="Roald Dahl")
|
||||
nesbo = Author(name="Jo Nesbø")
|
||||
nakamura = Author(name="中村 文則")
|
||||
sql_session.add_all([tolkien, orwell, dahl, nesbo, nakamura])
|
||||
sql_session.flush()
|
||||
|
||||
result = search_authors_by_name(sql_session, "e")
|
||||
|
||||
assert set(result) == {tolkien, orwell, nesbo}
|
||||
Reference in New Issue
Block a user