diff options
Diffstat (limited to 'tests/managers/gr/test_business.py')
| -rw-r--r-- | tests/managers/gr/test_business.py | 139 |
1 files changed, 90 insertions, 49 deletions
diff --git a/tests/managers/gr/test_business.py b/tests/managers/gr/test_business.py index 7eb77f8..022086a 100644 --- a/tests/managers/gr/test_business.py +++ b/tests/managers/gr/test_business.py @@ -1,30 +1,52 @@ +from collections.abc import Callable +from typing import TYPE_CHECKING from uuid import uuid4 import pytest -from test_utils.models.conftest import business +from generalresearch.models.gr.business import ( + Business, + BusinessAddress, + BusinessBankAccount, +) +from generalresearch.models.gr.definitions import TransferMethod +from generalresearch.models.gr.team import Team + +if TYPE_CHECKING: + from generalresearch.managers.gr.business import ( + BusinessAddressManager, + BusinessBankAccountManager, + BusinessManager, + ) + from generalresearch.managers.gr.team import MembershipManager, TeamManager + from generalresearch.models.gr.authentication import GRUser + from generalresearch.pg_helper import PostgresConfig class TestBusinessBankAccountManager: - def test_init(self, business_bank_account_manager, gr_db): - assert business_bank_account_manager.pg_config == gr_db + def test_init( + self, + gr_business_bank_account_manager: BusinessBankAccountManager, + gr_db: PostgresConfig, + ): + assert gr_business_bank_account_manager.pg_config == gr_db - def test_create(self, business, business_bank_account_manager): - from generalresearch.models.gr.business import ( - TransferMethod, - BusinessBankAccount, - ) + def test_create( + self, + gr_business: Business, + gr_business_bank_account_manager: BusinessBankAccountManager, + ): - instance = business_bank_account_manager.create( - business_id=business.id, + instance = gr_business_bank_account_manager.create( + business_id=gr_business.id, uuid=uuid4().hex, transfer_method=TransferMethod.ACH, ) assert isinstance(instance, BusinessBankAccount) assert isinstance(instance.id, int) - res = business_bank_account_manager.get_by_business_id( + res = gr_business_bank_account_manager.get_by_business_id( business_id=instance.business_id ) assert isinstance(res, list) @@ -35,42 +57,49 @@ class TestBusinessBankAccountManager: class TestBusinessAddressManager: - def test_create(self, business, business_address_manager): - from generalresearch.models.gr.business import BusinessAddress - - res = business_address_manager.create(uuid=uuid4().hex, business_id=business.id) + def test_create( + self, gr_business: Business, gr_business_address_manager: BusinessAddressManager + ): + assert gr_business.id + res = gr_business_address_manager.create( + uuid=uuid4().hex, business_id=gr_business.id + ) assert isinstance(res, BusinessAddress) assert isinstance(res.id, int) class TestBusinessManager: - def test_create(self, business_manager): - from generalresearch.models.gr.business import Business + def test_create(self, gr_business_factory: Callable[..., Business]): - instance = business_manager.create_dummy() + instance = gr_business_factory() assert isinstance(instance, Business) assert isinstance(instance.id, int) - def test_get_or_create(self, business_manager): + def test_get_or_create(self, gr_business_manager: BusinessManager): uuid_key = uuid4().hex - assert business_manager.get_by_uuid(business_uuid=uuid_key) is None + assert gr_business_manager.get_by_uuid(business_uuid=uuid_key) is None - instance = business_manager.get_or_create( + instance = gr_business_manager.get_or_create( uuid=uuid_key, name=f"name-{uuid4().hex[:6]}", ) - res = business_manager.get_by_uuid(business_uuid=uuid_key) + res = gr_business_manager.get_by_uuid(business_uuid=uuid_key) + assert isinstance(res, Business) assert res.id == instance.id - def test_get_all(self, business_manager): - res1 = business_manager.get_all() + def test_get_all( + self, + gr_business_manager: BusinessManager, + gr_business_factory: Callable[..., Business], + ): + res1 = gr_business_manager.get_all() assert isinstance(res1, list) - business_manager.create_dummy() - res2 = business_manager.get_all() + gr_business_factory() + res2 = gr_business_manager.get_all() assert len(res1) == len(res2) - 1 @pytest.mark.skip(reason="TODO") @@ -78,53 +107,65 @@ class TestBusinessManager: pass def test_get_by_user_id( - self, business_manager, gr_user, team_manager, membership_manager + self, + gr_business_manager: BusinessManager, + gr_user: GRUser, + gr_team_manager: TeamManager, + gr_membership_manager: MembershipManager, + gr_business_factory: Callable[..., Business], + gr_team_factory: Callable[..., Team], ): - res = business_manager.get_by_user_id(user_id=gr_user.id) + res = gr_business_manager.get_by_user_id(user_id=gr_user.id) assert len(res) == 0 - # Create a Business, but don't add it to anything - b1 = business_manager.create_dummy() - res = business_manager.get_by_user_id(user_id=gr_user.id) + # Create a business: Business, but don't add it to anything + b1 = gr_business_factory() + res = gr_business_manager.get_by_user_id(user_id=gr_user.id) assert len(res) == 0 # Create a Team, but don't create any Memberships - t1 = team_manager.create_dummy() - res = business_manager.get_by_user_id(user_id=gr_user.id) + t1 = gr_team_factory() + res = gr_business_manager.get_by_user_id(user_id=gr_user.id) assert len(res) == 0 # Create a Membership for the gr_user to the Team... but it doesn't # matter because the Team doesn't have any Business yet - m1 = membership_manager.create(team=t1, gr_user=gr_user) - res = business_manager.get_by_user_id(user_id=gr_user.id) + _ = gr_membership_manager.create(team=t1, gr_user=gr_user) + res = gr_business_manager.get_by_user_id(user_id=gr_user.id) assert len(res) == 0 # Add the Business to the Team... now the Business should be available # to the gr_user - team_manager.add_business(team=t1, business=b1) - res = business_manager.get_by_user_id(user_id=gr_user.id) + gr_team_manager.add_business(team=t1, business=b1) + res = gr_business_manager.get_by_user_id(user_id=gr_user.id) assert len(res) == 1 # Add another Business to the Team! - b2 = business_manager.create_dummy() - team_manager.add_business(team=t1, business=b2) - res = business_manager.get_by_user_id(user_id=gr_user.id) + b2 = gr_business_factory() + gr_team_manager.add_business(team=t1, business=b2) + res = gr_business_manager.get_by_user_id(user_id=gr_user.id) assert len(res) == 2 @pytest.mark.skip(reason="TODO") def test_get_uuids_by_user_id(self): pass - def test_get_by_uuid(self, business, business_manager): - instance = business_manager.get_by_uuid(business_uuid=business.uuid) - assert business.id == instance.id + def test_get_by_uuid( + self, gr_business: Business, gr_business_manager: BusinessManager + ): + instance = gr_business_manager.get_by_uuid(business_uuid=gr_business.uuid) + assert isinstance(instance, Business) + assert gr_business.id == instance.id - def test_get_by_id(self, business, business_manager): - instance = business_manager.get_by_id(business_id=business.id) - assert business.uuid == instance.uuid + def test_get_by_id( + self, gr_business: Business, gr_business_manager: BusinessManager + ): + instance = gr_business_manager.get_by_id(business_id=gr_business.id) + assert isinstance(instance, Business) + assert gr_business.uuid == instance.uuid - def test_cache_key(self, business): - assert "business:" in business.cache_key + def test_cache_key(self, gr_business: Business): + assert "business:" in gr_business.cache_key # def test_create_raise_on_duplicate(self): # b_uuid = uuid4().hex @@ -133,7 +174,7 @@ class TestBusinessManager: # business = BusinessManager.create( # uuid=b_uuid, # name=f"test-{b_uuid[:6]}") - # assert isinstance(business, Business) + # assert isinstance(gr_business: Business, Business) # # # Try to make it again # with pytest.raises(expected_exception=psycopg.errors.UniqueViolation): |
