aboutsummaryrefslogtreecommitdiff
path: root/tests/managers/gr/test_business.py
diff options
context:
space:
mode:
authorMax Nanis2026-03-06 16:49:46 -0500
committerMax Nanis2026-03-06 16:49:46 -0500
commit91d040211a4ed6e4157896256a762d3854777b5e (patch)
treecd95922ea4257dc8d3f4e4cbe8534474709a20dc /tests/managers/gr/test_business.py
downloadgeneralresearch-91d040211a4ed6e4157896256a762d3854777b5e.tar.gz
generalresearch-91d040211a4ed6e4157896256a762d3854777b5e.zip
Initial commitv3.3.4
Diffstat (limited to 'tests/managers/gr/test_business.py')
-rw-r--r--tests/managers/gr/test_business.py150
1 files changed, 150 insertions, 0 deletions
diff --git a/tests/managers/gr/test_business.py b/tests/managers/gr/test_business.py
new file mode 100644
index 0000000..7eb77f8
--- /dev/null
+++ b/tests/managers/gr/test_business.py
@@ -0,0 +1,150 @@
+from uuid import uuid4
+
+import pytest
+
+from test_utils.models.conftest import business
+
+
+class TestBusinessBankAccountManager:
+
+ def test_init(self, business_bank_account_manager, gr_db):
+ assert 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,
+ )
+
+ instance = business_bank_account_manager.create(
+ business_id=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(
+ business_id=instance.business_id
+ )
+ assert isinstance(res, list)
+ assert len(res) == 1
+ assert isinstance(res[0], BusinessBankAccount)
+ assert res[0].business_id == instance.business_id
+
+
+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)
+ assert isinstance(res, BusinessAddress)
+ assert isinstance(res.id, int)
+
+
+class TestBusinessManager:
+
+ def test_create(self, business_manager):
+ from generalresearch.models.gr.business import Business
+
+ instance = business_manager.create_dummy()
+ assert isinstance(instance, Business)
+ assert isinstance(instance.id, int)
+
+ def test_get_or_create(self, business_manager):
+ uuid_key = uuid4().hex
+
+ assert business_manager.get_by_uuid(business_uuid=uuid_key) is None
+
+ instance = business_manager.get_or_create(
+ uuid=uuid_key,
+ name=f"name-{uuid4().hex[:6]}",
+ )
+
+ res = business_manager.get_by_uuid(business_uuid=uuid_key)
+ assert res.id == instance.id
+
+ def test_get_all(self, business_manager):
+ res1 = business_manager.get_all()
+ assert isinstance(res1, list)
+
+ business_manager.create_dummy()
+ res2 = business_manager.get_all()
+ assert len(res1) == len(res2) - 1
+
+ @pytest.mark.skip(reason="TODO")
+ def test_get_by_team(self):
+ pass
+
+ def test_get_by_user_id(
+ self, business_manager, gr_user, team_manager, membership_manager
+ ):
+ res = 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)
+ 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)
+ 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)
+ 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)
+ 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)
+ 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_id(self, business, business_manager):
+ instance = business_manager.get_by_id(business_id=business.id)
+ assert business.uuid == instance.uuid
+
+ def test_cache_key(self, business):
+ assert "business:" in business.cache_key
+
+ # def test_create_raise_on_duplicate(self):
+ # b_uuid = uuid4().hex
+ #
+ # # Make the first one
+ # business = BusinessManager.create(
+ # uuid=b_uuid,
+ # name=f"test-{b_uuid[:6]}")
+ # assert isinstance(business, Business)
+ #
+ # # Try to make it again
+ # with pytest.raises(expected_exception=psycopg.errors.UniqueViolation):
+ # business = BusinessManager.create(
+ # uuid=b_uuid,
+ # name=f"test-{b_uuid[:6]}")
+ #
+ # def test_get_by_team(self, team):
+ # for idx in range(5):
+ # BusinessManager.create(name=f"Business Name #{uuid4().hex[:6]}", team=team)
+ #
+ # res = BusinessManager.get_by_team(team_id=team.id)
+ # assert isinstance(res, list)
+ # assert 5 == len(res)