def _create_object_stub(self, with_relations=False, size=1, **kwargs): """ Create an object dict with relation dicts using factories. """ object_list = [] for iteration in range(0, size): obj = self.factory_cls.stub(**kwargs).__dict__ del obj['tenant'] if with_relations: # If relations are needed, override them, because a dict is needed instead of an instance. obj['phone_numbers'] = [PhoneNumberFactory.stub().__dict__, ] obj['social_media'] = [SocialMediaFactory.stub().__dict__, ] obj['addresses'] = [AddressFactory.stub().__dict__, ] obj['email_addresses'] = [EmailAddressFactory.stub().__dict__, ] obj['accounts'] = [AccountFactory.stub().__dict__, ] obj['accounts'][0]['status'] = {'id': AccountStatusFactory.create(tenant=self.user_obj.tenant).id} obj['tags'] = [TagFactory.stub().__dict__, ] del obj['accounts'][0]['tenant'] 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 _create_object(self, with_relations=False, size=1, **kwargs): """ Create an object with relations in the database 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 = self.factory_cls.create_batch(size=size, **kwargs) for iteration in range(0, size): obj = object_list[iteration] if with_relations: obj.phone_numbers.add(*PhoneNumberFactory.create_batch(size=2, tenant=obj.tenant)) obj.social_media.add(SocialMediaFactory(tenant=obj.tenant)) obj.addresses.add(AddressFactory(tenant=obj.tenant)) obj.email_addresses.add(EmailAddressFactory(tenant=obj.tenant)) obj.functions.add(*FunctionFactory.create_batch(size=2, tenant=obj.tenant, contact=obj)) obj.tags.add(*TagFactory.create_batch(size=2, tenant=obj.tenant, subject=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 _create_object_stub_with_relations(self): """ Create an object dict with relation dicts using factories. """ contact = self.factory_cls.stub().__dict__ contact['phone_numbers'] = [ PhoneNumberFactory.stub().__dict__, ] contact['social_media'] = [ SocialMediaFactory.stub().__dict__, ] contact['addresses'] = [ AddressFactory.stub().__dict__, ] contact['email_addresses'] = [ EmailAddressFactory.stub().__dict__, ] contact['accounts'] = [ AccountFactory.stub().__dict__, ] contact['tags'] = [ TagFactory.stub().__dict__, ] del contact['tenant'] del contact['accounts'][0]['tenant'] return contact
def email_addresses(self, create, extracted, **kwargs): if create: email_str = '%s.%s@%s' % (self.first_name.lower(), self.last_name.lower(), faker.free_email_domain()) email_address = EmailAddressFactory(tenant=self.tenant, email_address=email_str) self.email_addresses.add(email_address)
def _create_object_with_relations(self): """ Create an object with relations in the database using factories. """ contact = self.factory_cls(tenant=self.user_obj.tenant) contact.phone_numbers.add(PhoneNumberFactory(tenant=contact.tenant)) contact.social_media.add(SocialMediaFactory(tenant=contact.tenant)) contact.addresses.add(AddressFactory(tenant=contact.tenant)) contact.email_addresses.add(EmailAddressFactory(tenant=contact.tenant)) contact.functions.add( FunctionFactory(tenant=contact.tenant, contact=contact)) contact.tags.add(TagFactory(tenant=contact.tenant, subject=contact)) return contact