class ClientFactory(DjangoModelFactory): class Meta: model = Client name = MimesisField('full_name') username = MimesisField('username') email = MimesisField('email')
class EkklesiaProfileDataFactory(Factory): class Meta: model = EkklesiaProfileData username = MimesisField('username', template='l_d') profile = MimesisField('text', quantity=2) avatar = ''
class ArgumentFactory(SQLAFactory): class Meta: model = Argument title = MimesisField('title') abstract = MimesisField('text', quantity=2) details = MimesisField('text', quantity=4)
class VotingPhaseTypeFactory(SQLAFactory): class Meta: model = VotingPhaseType name = MimesisField('word') abbreviation = MimesisField('word') secret_voting_possible = True voting_type = FuzzyChoice(list(VotingType))
class StateFactory(factory.django.DjangoModelFactory): class Meta(object): model = State workflow_version = factory.SubFactory(WorkflowVersionFactory) name = MimesisField('person.identifier', mask='state-#') description = MimesisField('description') slug = MimesisField('name')
class PropositionTypeFactory(SQLAFactory): class Meta: model = PropositionType name = MimesisField('word') abbreviation = FuzzyText(length=3, chars=string.ascii_uppercase) description = MimesisField('text', quantity=5) policy = SubFactory(PolicyFactory)
class FactoryWithProviders(factory.Factory): class Meta(object): model = Guest class Params(object): providers = (builtins.RussiaSpecProvider, ) full_name = MimesisField('full_name', gender=Gender.FEMALE) patronymic = MimesisField('patronymic')
class PropositionFactory(SQLAFactory): class Meta: model = Proposition title = MimesisField('title') content = MimesisField('text', quantity=5) motivation = MimesisField('text', quantity=8) abstract = MimesisField('text', quantity=2) ballot = SubFactory(BallotFactory)
class PageFactory(SQLAFactory): class Meta: model = Page name = MimesisField('name') lang = 'en' title = MimesisField('title') text = MimesisField('text') permissions = '{}'
class PageFactory(SQLAFactory): class Meta: model = Page name = Sequence('page{}'.format) lang = 'en' title = MimesisField('title') text = MimesisField('text') permissions = '{}'
class EkklesiaAuthDataFactory(Factory): class Meta: model = EkklesiaAuthData sub = MimesisField('uuid') roles = [] eligible = FuzzyChoice([True, False]) verified = FuzzyChoice([True, False]) verified: bool preferred_username = MimesisField('username', template='l_d')
class AdvertsFactory(factory.Factory): class Meta: model = models.Adverts title = MimesisField('title') description = MimesisField('text') author = factory.SubFactory(ProfilesFactory) # uid = factory.Sequence(lambda n: n), price = RUMimesisField('advertcustom.price', providers=[AnessCustomProvider])
class AccountFactory(factory.Factory): class Meta: model = Account exclude = ('_domain', ) uid = factory.Sequence(lambda n: n + 1) username = MimesisField('username') _domain = MimesisField('top_level_domain') email = factory.LazyAttribute( lambda obj: '{0}@example{1}'.format(obj.username, obj._domain), )
class DocumentFactory(SQLAFactory): class Meta: model = Document name = Sequence('document{}'.format) lang = 'en' area = SubFactory(SubjectAreaFactory) proposition_type = SubFactory(PropositionTypeFactory) text = MimesisField('text') description = MimesisField('text')
class ProfilesFactory(factory.Factory): class Meta: model = models.Users name = MimesisField('full_name') social = MimesisField('word') uid = MimesisField('token') # uid = factory.Sequence(lambda n: n), email = factory.LazyAttribute(lambda o: '*****@*****.**' % o.name) access_token = MimesisField('token', entropy=32) fusk = MimesisField('word')
class PropositionFactory(SQLAFactory): class Meta: model = Proposition title = MimesisField('title') content = MimesisField('text', quantity=5) motivation = MimesisField('text', quantity=8) abstract = MimesisField('text', quantity=2) status = PropositionStatus.DRAFT ballot = SubFactory(BallotFactory) tags = RelatedFactoryList(TagFactory)
class VotingPhaseFactory(SQLAFactory): class Meta: model = VotingPhase title = MimesisField('title') name = Sequence('voting_phase{}'.format) # when setting the target date, another status than PREPARING must be set! target = None status = VotingStatus.PREPARING secret = True description = MimesisField('text', quantity=10) department = SubFactory(DepartmentFactory) phase_type = SubFactory(VotingPhaseTypeFactory)
class AccountFactory(factory.Factory): class Meta(object): model = Account exclude = ('_domain', ) uid = factory.Sequence(lambda order: order + 1) username = MimesisField('username') _domain = MimesisField('top_level_domain') email = factory.LazyAttribute( lambda instance: '{0}@example{1}'.format( instance.username, instance._domain, # noqa: Z441 ), )
class DepartmentFactory(SQLAFactory): class Meta: model = Department name = MimesisField('word') description = MimesisField('text', quantity=5) @factory.post_generation def add_subject_areas(self, create, extracted, **kwargs): # self can also be a dict if factory.build(dict) is used if isinstance(self, Department): for _ in range(2): SubjectAreaFactory(department=self)
class PropositionFactory(SQLAFactory): class Meta: model = Proposition title = MimesisField('title') content = MimesisField('text', quantity=5) motivation = MimesisField('text', quantity=8) abstract = MimesisField('text', quantity=2) status = FuzzyChoice([ PropositionStatus.DRAFT, PropositionStatus.SUBMITTED, PropositionStatus.QUALIFIED ]) ballot = SubFactory(BallotFactory)
class CustomizableTextFactory(SQLAFactory): class Meta: model = CustomizableText name = Sequence('customizable_text{}'.format) lang = 'en' text = MimesisField('text') permissions = '{}'
class BallotFactory(SQLAFactory): class Meta: model = Ballot name = MimesisField('word') election = FuzzyChoice([0, 4, 8]) voting_type = FuzzyChoice(list(VotingType)) proposition_type = SubFactory(PropositionTypeFactory)
class PropositionTypeFactory(SQLAFactory): class Meta: model = PropositionType name = Sequence('proposition_type{}'.format) abbreviation = Sequence('P{}T'.format) description = MimesisField('text', quantity=5) policy = SubFactory(PolicyFactory)
class PolicyFactory(SQLAFactory): class Meta: model = Policy name = MimesisField('word') description = MimesisField('text', quantity=5) majority = FuzzyChoice(list(Majority)) proposition_expiration = FuzzyInteger(0, 10000) qualification_quorum = FuzzyDecimal(0, 1) qualification_minimum = FuzzyInteger(0, 1000) range_max = FuzzyInteger(6, 10) range_small_max = FuzzyInteger(3, 5) range_small_options = FuzzyInteger(1, 10) secret_minimum = FuzzyInteger(0, 1000) secret_quorum = FuzzyDecimal(0, 1) submitter_minimum = FuzzyInteger(0, 1000) voting_duration = FuzzyInteger(0, 10000) voting_system = FuzzyChoice(list(VotingSystem))
class VotingPhaseTypeFactory(SQLAFactory): class Meta: model = VotingPhaseType abbreviation = Sequence('V{}P'.format) description = MimesisField('text', quantity=10) name = Sequence('voting_phase_type{}'.format) secret_voting_possible = FuzzyChoice([True, False]) voting_type = FuzzyChoice(list(VotingType))
def test_data_with_override_defined_locale(person_factory): with MimesisField.override_locale('en'): person = person_factory() for letter in person.full_name_en.replace(' ', ''): assert letter in string.ascii_letters for russian_letter in person.full_name_ru.replace(' ', ''): # Keyword locale has a priority over override: assert russian_letter not in string.ascii_letters
def test_data_with_override_locale(person_factory): with MimesisField.override_locale('ru'): person = person_factory() for letter in person.full_name_en.replace(' ', ''): # Default locale will be changed to overridden: assert letter not in string.ascii_letters for russian_letter in person.full_name_ru.replace(' ', ''): assert russian_letter not in string.ascii_letters
class UserFactory(factory.Factory): class Meta(object): model = User username = MimesisField("username", template="l_d") password = "******" email = factory.LazyAttribute( lambda instance: "{0}@test.com".format(instance.username)) joinDate = datetime.now() activatedOn = datetime.now()
class UserFactory(factory.Factory): class Meta(object): model = User uid = factory.Sequence(lambda order: order) email = MimesisField('email')
class PersonFactory(factory.Factory): class Meta: model = Person full_name_en = MimesisField('full_name') full_name_ru = MimesisField('full_name', locale='ru')