Skip to content

Instantly share code, notes, and snippets.

@rj76
Created September 15, 2021 09:47
Show Gist options
  • Save rj76/c1f254dfda2e0ec9bdcb069cb2f2fe67 to your computer and use it in GitHub Desktop.
Save rj76/c1f254dfda2e0ec9bdcb069cb2f2fe67 to your computer and use it in GitHub Desktop.
pytest tenant fixtures
import pytest
from django.core.management import call_command
from django_tenants.utils import get_public_schema_name
from apps.core import test_mixins as mixins
from apps.core.nmbrs import NmbrsEmployee, NmbrsCompany
from apps.member import models as member_models
from apps.member.tests import factories as member_factories
def get_or_create(companycode):
try:
member = member_models.Member.objects.get(companycode=companycode)
member.tenant = member.tenants.all()[0]
member.settings = None
member.check_settings()
except member_models.Member.DoesNotExist:
member = member_factories.MemberFactory.create(companycode=companycode)
member.check_settings()
member.create_tenants()
call_command('migrate_schemas',
schema_name=get_public_schema_name(),
interactive=False,
verbosity=0)
member.tenant = member.tenants.all()[0]
return member
@pytest.fixture(scope='session')
def django_db_setup(django_db_setup, django_db_blocker):
with django_db_blocker.unblock():
get_or_create('companycode1')
get_or_create('companycode2')
get_or_create('companycode3')
@pytest.fixture
def member1():
return get_or_create('companycode1')
@pytest.fixture
def client1(member1):
return mixins.My24ApiClient(member1.tenant)
@pytest.fixture
def member2():
return get_or_create('companycode2')
@pytest.fixture
def client2(member2):
return mixins.My24ApiClient(member2.tenant)
@pytest.fixture
def member3():
return get_or_create('companycode3')
@pytest.fixture
def client3(member3):
return mixins.My24ApiClient(member3.tenant)
@pytest.fixture
def nmbrs_employee():
return NmbrsEmployee('companycode1')
@pytest.fixture
def nmbrs_company():
return NmbrsCompany()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment