示例#1
0
class DealFactory(DjangoModelFactory):
    tenant = SubFactory(TenantFactory)
    account = SubFactory(AccountFactory, tenant=SelfAttribute('..tenant'))
    contact = SubFactory(ContactFactory, tenant=SelfAttribute('..tenant'))
    amount_once = FuzzyDecimal(42.7)
    amount_recurring = FuzzyDecimal(42.7)
    assigned_to = SubFactory(LilyUserFactory, tenant=SelfAttribute('..tenant'))
    card_sent = FuzzyChoice([True, False])
    contacted_by = SubFactory(DealContactedByFactory,
                              tenant=SelfAttribute('..tenant'))
    currency = FuzzyChoice(dict(CURRENCIES).keys())
    found_through = SubFactory(DealFoundThroughFactory,
                               tenant=SelfAttribute('..tenant'))
    is_checked = FuzzyChoice([True, False])
    name = LazyAttribute(lambda o: faker.word())
    new_business = FuzzyChoice([True, False])
    next_step = SubFactory(DealNextStepFactory,
                           tenant=SelfAttribute('..tenant'))
    next_step_date = FuzzyDate(past_date, future_date)
    status = SubFactory(DealStatusFactory, tenant=SelfAttribute('..tenant'))
    twitter_checked = FuzzyChoice([True, False])
    why_customer = SubFactory(DealWhyCustomerFactory,
                              tenant=SelfAttribute('..tenant'))
    why_lost = SubFactory(DealWhyLostFactory, tenant=SelfAttribute('..tenant'))
    closed_date = LazyAttribute(
        lambda o: faker.date_time_between_dates(past_date, current_date, utc)
        if o.status.is_won or o.status.is_lost else None)

    class Meta:
        model = Deal
示例#2
0
class AccountFactory(DjangoModelFactory):
    tenant = SubFactory(TenantFactory)
    name = LazyAttribute(lambda o: faker.company())
    description = LazyAttribute(lambda o: faker.bs())
    status = SubFactory(AccountStatusFactory, tenant=SelfAttribute('..tenant'))

    @factory.post_generation
    def phone_numbers(self, create, extracted, **kwargs):
        phone_str = faker.phone_number()
        if create:
            phone_number = PhoneNumberFactory(tenant=self.tenant,
                                              number=phone_str)
            self.phone_numbers.add(phone_number)

    @factory.post_generation
    def websites(self, create, extracted, **kwargs):

        if not create:
            return

        size = extracted.get('size', 1) if extracted else 1
        WebsiteFactory.create_batch(size=size,
                                    account=self,
                                    tenant=self.tenant)

    class Meta:
        model = Account
示例#3
0
class CaseFactory(DjangoModelFactory):
    tenant = SubFactory(TenantFactory)
    status = SubFactory(CaseStatusFactory, tenant=SelfAttribute('..tenant'))
    priority = FuzzyChoice(dict(Case.PRIORITY_CHOICES).keys())
    subject = LazyAttribute(lambda o: faker.word())
    account = SubFactory(AccountFactory, tenant=SelfAttribute('..tenant'))
    expires = FuzzyDate(datetime.date(2015, 1, 1), datetime.date(2016, 1, 1))
    assigned_to = SubFactory(LilyUserFactory, tenant=SelfAttribute('..tenant'))
    type = SubFactory(CaseTypeFactory, tenant=SelfAttribute('..tenant'))
    created_by = SelfAttribute('.assigned_to')

    @factory.post_generation
    def teams(self, create, extracted, **kwargs):
        if not create:
            # Simple build, do nothing.
            return

        if extracted:
            if isinstance(extracted, Team):
                # A single team was passed in, use that.
                self.assigned_to_teams.add(extracted)
            else:
                # A list of teams were passed in, use them.
                for team in extracted:
                    self.assigned_to_teams.add(team)

    class Meta:
        model = Case
示例#4
0
class EmailMessageFactory(DjangoModelFactory):
    subject = LazyAttribute(lambda o: faker.word())
    sender = SubFactory(RecipientFactory)
    body_text = LazyAttribute(lambda o: faker.text())
    sent_date = LazyAttribute(
        lambda o: faker.date_time_between_dates(past_date, current_date, utc))
    account = SubFactory(EmailAccountFactory)
    message_id = FuzzyText()

    @post_generation
    def received_by(self, create, extracted, **kwargs):
        if not create:
            # Simple build, do nothing.
            return

        if extracted:
            if isinstance(extracted, Recipient):
                # A single team was passed in, use that.
                self.received_by.add(extracted)
            else:
                # A list of teams were passed in, use them.
                for recipient in extracted:
                    self.received_by.add(recipient)

    class Meta:
        model = EmailMessage
示例#5
0
class UnitInquiryFactory(DjangoModelFactory):
    class Meta:
        model = UnitInquiry

    student = SubFactory(StudentFactory)
    unit = SubFactory(UnitFactory)
    action_type = "UNLOCK"
    explanation = Faker('sentence')
示例#6
0
class CommentFactory(DjangoModelFactory):
    post_id = SubFactory(PostFactory)
    user_id = SubFactory(UserFactory)

    content = Faker("sentence")

    class Meta:
        model = Comment
示例#7
0
class WebsiteFactory(DjangoModelFactory):
    tenant = SubFactory(TenantFactory)
    account = SubFactory(AccountFactory, tenant=SelfAttribute('..tenant'))
    website = LazyAttribute(lambda o: faker.url())
    is_primary = FuzzyChoice([True, False])

    class Meta:
        model = Website
示例#8
0
class GuessFactory(DjangoModelFactory):
    class Meta:
        model = Guess

    user = SubFactory(UserFactory)
    market = SubFactory(MarketFactory)
    value = FuzzyDecimal(1, 10000)
    score = LazyAttribute(lambda o: o.get_score())
示例#9
0
class BuurtFactory(DjangoModelFactory):
    class Meta:
        model = models.Buurt
        django_get_or_create = ('code', )

    id = fuzzy.FuzzyText(length=14, chars=string.digits)
    code = fuzzy.FuzzyText(length=3, chars=string.digits)
    stadsdeel = SubFactory(StadsdeelFactory)
    buurtcombinatie = SubFactory(BuurtcombinatieFactory)
示例#10
0
class CallTransferFactory(DjangoModelFactory):
    tenant = SubFactory(TenantFactory)
    timestamp = LazyAttribute(lambda o: faker.date_time_between(
        start_date="now", end_date="+1m", tzinfo=UTC))
    destination = SubFactory(CallParticipantFactory,
                             tenant=SelfAttribute('..tenant'))

    class Meta:
        model = CallTransfer
示例#11
0
class JudgementCodeFactory(DjangoModelFactory):
    user_id = SubFactory(UserFactory)
    gameversion_id = SubFactory(GameVersionFactory)

    programming_language = SubFactory(ProgrammingLanguageFactory)
    code = Faker("sentence")

    class Meta:
        model = JudgementCode
示例#12
0
class PostFactory(DjangoModelFactory):
    title = Faker("sentence")
    user_id = SubFactory(UserFactory)
    blog_id = SubFactory(BlogFactory)

    content = Faker("sentence")

    class Meta:
        model = Post
示例#13
0
class StudentFactory(DjangoModelFactory):
    class Meta:
        model = Student

    user = SubFactory(UserFactory)
    semester = SubFactory(SemesterFactory)
    track = 'C'
    newborn = False
    last_level_seen = 0
示例#14
0
class UploadedFileFactory(DjangoModelFactory):
	class Meta:
		model = UploadedFile

	benefactor = SubFactory(StudentFactory)
	owner = LazyAttribute(lambda o: o.benefactor.user)
	category = 'psets'
	content = FileField(filename='pset.txt')
	unit = SubFactory(UnitFactory)
示例#15
0
class FunctionFactory(DjangoModelFactory):
    tenant = SubFactory(TenantFactory)
    contact = SubFactory(ContactFactory, tenant=SelfAttribute('..tenant'))
    account = SubFactory(AccountFactory, tenant=SelfAttribute('..tenant'))

    class Meta:
        model = Function
        exclude = (
            'tenant',
        )  # Tenant is a field because of the relations, but not because a function has a tenant.
示例#16
0
class UserCodeFactory(DjangoModelFactory):
    user_id = SubFactory(UserFactory)
    gamerooms = SubFactory(GameRoomFactory)

    programming_language = SubFactory(ProgrammingLanguageFactory)
    code = Faker("sentence")
    is_active = fuzzy.FuzzyInteger(0, 1)

    class Meta:
        model = UserCode
示例#17
0
class PSetFactory(DjangoModelFactory):
	class Meta:
		model = PSet

	student = SubFactory(StudentFactory)
	unit = SubFactory(UnitFactory)
	upload = LazyAttribute(
		lambda o: UploadedFileFactory.create(benefactor=o.student, unit=o.unit)
	)
	next_unit_to_unlock = SubFactory(UnitFactory)
	approved = True
示例#18
0
class EmailAccountFactory(DjangoModelFactory):
    tenant = SubFactory(TenantFactory)
    owner = SubFactory(LilyUserFactory, tenant=SelfAttribute('..tenant'))
    email_address = email_address
    from_name = LazyAttribute(lambda o: faker.name())
    label = LazyAttribute(lambda o: faker.word())
    is_authorized = True
    privacy = FuzzyChoice(dict(EmailAccount.PRIVACY_CHOICES).keys())

    class Meta:
        model = EmailAccount
示例#19
0
class StudentRegistrationFactory(DjangoModelFactory):
    class Meta:
        model = StudentRegistration

    user = SubFactory(UserFactory)
    container = SubFactory(RegistrationContainerFactory)
    parent_email = Faker('ascii_safe_email')
    track = 'C'
    gender = 'H'
    graduation_year = 0
    school_name = Faker('city')
示例#20
0
class ProblemSuggestionFactory(DjangoModelFactory):
	class Meta:
		model = ProblemSuggestion

	user = SubFactory(UserFactory)
	unit = SubFactory(UnitFactory)
	weight = FuzzyChoice([2, 3, 5, 9])
	source = UniqueFaker('company')
	description = Faker('text')
	statement = Faker('sentence')
	solution = Faker('paragraph')
示例#21
0
class EmailAccountFactory(DjangoModelFactory):
    tenant = SubFactory(TenantFactory)
    owner = SubFactory(LilyUserFactory)
    email_address = LazyAttribute(lambda o: unicodedata.normalize(
        'NFD', faker.safe_email()).encode('ascii', 'ignore'))
    from_name = LazyAttribute(lambda o: faker.name())
    label = LazyAttribute(lambda o: faker.word())
    is_authorized = True
    privacy = FuzzyChoice(dict(EmailAccount.PRIVACY_CHOICES).keys())

    class Meta:
        model = EmailAccount
示例#22
0
class CaseFactory(DjangoModelFactory):
    tenant = SubFactory(TenantFactory)
    status = SubFactory(CaseStatusFactory, tenant=SelfAttribute('..tenant'))
    priority = FuzzyChoice(dict(Case.PRIORITY_CHOICES).keys())
    subject = LazyAttribute(lambda o: faker.word())
    account = SubFactory(AccountFactory, tenant=SelfAttribute('..tenant'))
    expires = FuzzyDate(datetime.date(2015, 1, 1), datetime.date(2016, 1, 1))
    assigned_to = SubFactory(LilyUserFactory, tenant=SelfAttribute('..tenant'))
    type = SubFactory(CaseTypeFactory, tenant=SelfAttribute('..tenant'))

    class Meta:
        model = Case
示例#23
0
class FunctionFactory(DjangoModelFactory):
    tenant = SubFactory(TenantFactory)
    contact = SubFactory(ContactFactory, tenant=SelfAttribute('..tenant'))
    account = SubFactory(AccountFactory, tenant=SelfAttribute('..tenant'))

    class Meta:
        model = Function
        exclude = ('tenant', )
        django_get_or_create = (
            'contact',
            'account',
        )
示例#24
0
class NummeraanduidingFactory(DjangoModelFactory):
    class Meta:
        model = models.Nummeraanduiding

    id = fuzzy.FuzzyText(length=14, chars=string.digits)
    landelijk_id = fuzzy.FuzzyText(length=16, chars=string.digits)
    huisnummer = LazyAttribute(lambda o: int(faker_instance.building_number()))
    openbare_ruimte = SubFactory(OpenbareRuimteFactory)
    verblijfsobject = SubFactory(VerblijfsobjectFactory)
    type = '01'  # default verblijfsobject
    postcode = '1000AN'  # default postcode..

    _openbare_ruimte_naam = LazyAttribute(lambda o: o.openbare_ruimte.naam)
示例#25
0
class DealFactory(DjangoModelFactory):
    tenant = SubFactory(TenantFactory)
    name = LazyAttribute(lambda o: faker.word())
    account = SubFactory(AccountFactory, tenant=SelfAttribute('..tenant'))
    amount_once = FuzzyDecimal(42.7)
    amount_recurring = FuzzyDecimal(42.7)
    expected_closing_date = FuzzyDate(datetime.date(2015, 1, 1),
                                      datetime.date(2016, 1, 1))
    assigned_to = SubFactory(LilyUserFactory, tenant=SelfAttribute('..tenant'))
    stage = FuzzyChoice(dict(Deal.STAGE_CHOICES).keys())

    class Meta:
        model = Deal
示例#26
0
class ExamAttemptFactory(DjangoModelFactory):
	class Meta:
		model = ExamAttempt

	student = SubFactory(StudentFactory)
	quiz = SubFactory(ExamFactory)
	score = 0

	guess1 = LazyAttribute(lambda o: o.quiz.answer1)
	guess2 = LazyAttribute(lambda o: o.quiz.answer2)
	guess3 = LazyAttribute(lambda o: o.quiz.answer3)
	guess4 = LazyAttribute(lambda o: o.quiz.answer4)
	guess5 = LazyAttribute(lambda o: o.quiz.answer5)
示例#27
0
class EmailDraftFactory(DjangoModelFactory):
    tenant = SubFactory(TenantFactory)
    send_from = SubFactory(EmailAccountFactory,
                           tenant=SelfAttribute('..tenant'))
    to = email_addresses
    cc = email_addresses
    bcc = email_addresses

    subject = LazyAttribute(lambda o: faker.word())
    body = LazyAttribute(lambda o: faker.text())

    mapped_attachments = FuzzyInteger(0, 5)

    class Meta:
        model = EmailDraft
示例#28
0
class CallRecordFactory(DjangoModelFactory):
    tenant = SubFactory(TenantFactory)
    call_id = FuzzyText(length=40)
    start = LazyAttribute(lambda o: faker.date_time(tzinfo=UTC))
    end = LazyAttribute(lambda o: faker.date_time_between(
        start_date="now", end_date="+15m", tzinfo=UTC))
    status = FuzzyChoice(dict(CallRecord.CALL_STATUS_CHOICES).keys())
    direction = FuzzyChoice(dict(CallRecord.CALL_DIRECTION_CHOICES).keys())
    caller = SubFactory(CallParticipantFactory,
                        tenant=SelfAttribute('..tenant'))
    destination = SubFactory(CallParticipantFactory,
                             tenant=SelfAttribute('..tenant'))

    class Meta:
        model = CallRecord
示例#29
0
class ColourThemeFactory(DjangoModelFactory):
    """Factory for color themes."""

    class Meta:
        model = ColourTheme

    logo = SubFactory(ImageFactory)
    company = Iterator(Company.objects.all())

    @lazy_attribute
    def primary(self):
        """
        Generate a fake primary theme color.

        :return: The primary color of a theme
        :rtype: int
        """
        return random.randint(0x000000, 0xFFFFFF)

    @lazy_attribute
    def accent(self):
        """
        Generate a fake accent theme color.

        :return: The accent color of a theme
        :rtype: int
        """
        return random.randint(0x000000, 0xFFFFFF)
示例#30
0
class CaseTypeFactory(DjangoModelFactory):
    tenant = SubFactory(TenantFactory)
    name = Iterator(CASETYPE_CHOICES)

    class Meta:
        model = CaseType
        django_get_or_create = ('tenant', 'name')