import pytest from backend.adapters.sqlite import create_db from backend.model.tribe import Tribe from backend.repository.tribe_sqlite_repository import TribeSQLiteRepository def populate_tribe(conn) -> list[Tribe]: cursor = conn.cursor() tribes = [ ("Tribe1", "2nd"), ("Tribe2", "2nd"), ("Tribe3", "1ST"), ] cursor.executemany( """ INSERT INTO tribes(name, level) VALUES (?, ?) """, tribes, ) conn.commit() return [Tribe(*t) for t in tribes] def test_get_tribe(sqlite_conn): create_db(sqlite_conn) prebuild_tribes = populate_tribe(sqlite_conn) tribe_repo = TribeSQLiteRepository(sqlite_conn) tribes = tribe_repo.get("Tribe1") assert prebuild_tribes[0] == tribes def test_get_tribe_not_exists(sqlite_conn): create_db(sqlite_conn) prebuild_tribes = populate_tribe(sqlite_conn) tribe_repo = TribeSQLiteRepository(sqlite_conn) with pytest.raises(ValueError): tribe_repo.get("Tribe0") def test_list_tribes(sqlite_conn): create_db(sqlite_conn) prebuild_tribes = populate_tribe(sqlite_conn) tribe_repo = TribeSQLiteRepository(sqlite_conn) tribes = tribe_repo.list() assert prebuild_tribes == tribes