Skip to content

Commit

Permalink
Add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
bonk1t committed Jan 28, 2024
1 parent e717b08 commit 7929d31
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 2 deletions.
2 changes: 1 addition & 1 deletion nalgonda/models/agency_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class AgencyConfig(BaseModel):
owner_id: str | None = Field(None, description="The user ID owning this configuration")
name: str = Field(..., description="Name of the agency")
shared_instructions: str = Field("Agency Manifesto")
agents: list[str] = Field(..., description="List of agent IDs used in the agency chart")
agents: list[str] = Field(default_factory=list, description="List of agent IDs used in the agency chart")
main_agent: str | None = Field(None, description="The main agent name")
agency_chart: list[conlist(str, min_length=2, max_length=2)] = Field( # type: ignore
default_factory=list,
Expand Down
2 changes: 1 addition & 1 deletion tests/functional/v1/api/test_agency_endpoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

def test_get_agency_list_success(client, mock_get_current_active_user, mock_firestore_client): # noqa: ARG001
# Setup expected response
expected_agency = AgencyConfig(agency_id="agency1", owner_id="test_user_id", name="Test agency", agents=[])
expected_agency = AgencyConfig(agency_id="agency1", owner_id="test_user_id", name="Test agency")
mock_firestore_client.setup_mock_data("agency_configs", "test_agency_id", expected_agency.model_dump())

response = client.get("/v1/api/agency/list")
Expand Down
Empty file.
57 changes: 57 additions & 0 deletions tests/unit/persistence/test_agency_config_firestore_storage.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import pytest

from nalgonda.models.agency_config import AgencyConfig
from nalgonda.persistence.agency_config_firestore_storage import AgencyConfigFirestoreStorage
from tests.test_utils.constants import TEST_USER_ID


@pytest.fixture
def agency_config_data():
return {"agency_id": "test_agency_id", "owner_id": TEST_USER_ID, "name": "Test Agency"}


def test_load_agency_config_by_owner_id(mock_firestore_client, agency_config_data):
mocked_data = AgencyConfig.model_validate(agency_config_data)
mock_firestore_client.setup_mock_data("agency_configs", "test_agency_id", agency_config_data)

storage = AgencyConfigFirestoreStorage()
result = storage.load_by_owner_id(TEST_USER_ID)

assert len(result) == 1
assert result[0] == mocked_data


def test_load_agency_config_by_agency_id(mock_firestore_client, agency_config_data):
mocked_data = AgencyConfig.model_validate(agency_config_data)
mock_firestore_client.setup_mock_data("agency_configs", "test_agency_id", agency_config_data)

storage = AgencyConfigFirestoreStorage()
result = storage.load_by_agency_id("test_agency_id")

assert result == mocked_data


def test_save_new_agency_config(mock_firestore_client):
new_agency_data = {"owner_id": TEST_USER_ID, "name": "New Test Agency"}
new_agency_config = AgencyConfig.model_validate(new_agency_data)
mock_firestore_client.setup_mock_data(
"agency_configs", "new_test_agency_id", new_agency_data, doc_id="new_test_agency_id"
)

storage = AgencyConfigFirestoreStorage()
agency_id = storage.save(new_agency_config)

assert agency_id is not None


def test_save_existing_agency_config(mock_firestore_client, agency_config_data):
agency_config = AgencyConfig.model_validate(agency_config_data)
mock_firestore_client.setup_mock_data("agency_configs", agency_config.agency_id, agency_config_data)

storage = AgencyConfigFirestoreStorage()
agency_id = storage.save(agency_config)

# Assert
assert agency_id == agency_config.agency_id
saved_data = mock_firestore_client.collection("agency_configs").document(agency_id).get().to_dict()
assert saved_data == agency_config.model_dump()

0 comments on commit 7929d31

Please sign in to comment.