def _create_object_stub(self, with_relations=False, size=1, **kwargs): """ Create an object dict with relation dicts using factories. """ # Set a default tenant of the user. kwargs['tenant'] = self.user_obj.tenant if not kwargs.get('tenant') else kwargs['tenant'] object_list = [] account = AccountFactory(**kwargs) assigned_to = LilyUserFactory(**kwargs) next_step = DealNextStepFactory(**kwargs) why_customer = DealWhyCustomerFactory(**kwargs) found_through = DealFoundThroughFactory(**kwargs) contacted_by = DealContactedByFactory(**kwargs) status = DealStatusFactory(**kwargs) why_lost = DealWhyLostFactory(**kwargs) for iteration in range(0, size): obj = self.factory_cls.stub(**kwargs).__dict__ del obj['tenant'] del obj['contact'] # The minimum viable deal instance needs these relations, so always make them. obj['account'] = { 'id': account.pk, } obj['assigned_to'] = { 'id': assigned_to.pk, } obj['next_step'] = { 'id': next_step.pk, } obj['why_customer'] = { 'id': why_customer.pk, } obj['found_through'] = { 'id': found_through.pk, } obj['contacted_by'] = { 'id': contacted_by.pk, } obj['status'] = { 'id': status.pk, } obj['why_lost'] = { 'id': why_lost.pk, } if with_relations: # If relations are needed, override them, because a dict is needed instead of an instance. obj['tags'] = [TagFactory.stub().__dict__, ] obj['notes'] = [NoteFactory.stub().__dict__, ] object_list.append(obj) if size > 1: return object_list else: # If required size is 1, just give the object instead of a list. return object_list[0]
def notes(self, size, tenant): NoteFactory.create_batch(size, tenant=tenant) # create multiple notes for single subject and multi author NoteFactory.create_batch(size, tenant=tenant, subject=AccountFactory(tenant=tenant)) # create multiple notes for single subject and single author NoteFactory.create_batch(size, tenant=tenant, author=LilyUserFactory(tenant=tenant), subject=AccountFactory(tenant=tenant))
def _get_logged_in_user(self): tenant = TenantFactory() current_user = get_current_user() # Ugly! if current_user: current_user.tenant = tenant user = LilyUserFactory(tenant=tenant) user.set_password('test') user.save() self.client.login(username=user.primary_email.email_address, password='******') return user
def contacts_and_accounts(self, size, tenant): # create various contacts ContactFactory.create_batch(size, tenant=tenant) # create accounts with zero contact AccountFactory.create_batch(size, tenant=tenant) # create account with multi contacts function_factory(tenant).create_batch( size, account=AccountFactory(tenant=tenant)) # create account with assigned_to function_factory(tenant).create_batch( size, account=AccountFactory(tenant=tenant, assigned_to=LilyUserFactory(tenant=tenant)))
def test_no_errors(self): """ Test that the stats pages give no errors. """ user_obj = LilyUserFactory(is_active=True) team = TeamFactory() self.client.login(email=user_obj.email, password='******') for pattern in case_patterns: # Loop over case patterns, these need the team_id kwarg. response = self.client.get( reverse(pattern.name, kwargs={ 'team_id': team.id, })) self.assertEqual(response.status_code, 200) for pattern in deal_patterns: # Loop over deal patterns, these need no kwargs. response = self.client.get(reverse(pattern.name)) self.assertEqual(response.status_code, 200)