aboutsummaryrefslogtreecommitdiff
path: root/tests/managers/gr/test_business.py
diff options
context:
space:
mode:
authorstuppie2026-09-07 11:47:43 -0600
committerstuppie2026-09-07 11:47:43 -0600
commit092960233652cce1f4dc7841856034a6635e9cd9 (patch)
tree46e5fcd4d1e1b7ed0b987980c6c67ffa6e6b45c7 /tests/managers/gr/test_business.py
parent80fd8aab4c7271ddb619b0de18741d7ac77b490b (diff)
parent242579a44855873d5e054e375440e9d3492cd682 (diff)
downloadgeneralresearch-092960233652cce1f4dc7841856034a6635e9cd9.tar.gz
generalresearch-092960233652cce1f4dc7841856034a6635e9cd9.zip
Merge branch 'master' into dev-greg
Diffstat (limited to 'tests/managers/gr/test_business.py')
-rw-r--r--tests/managers/gr/test_business.py139
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):