class ImageFactory(factory.DjangoModelFactory): class Meta: model = Image creator = factory.SubFactory(UserFactory) description = FuzzyUnicode() file = factory.django.ImageField() title = FuzzyUnicode()
class TopicFactory(factory.DjangoModelFactory): class Meta: model = Topic title = FuzzyUnicode() slug = factory.LazyAttribute(lambda o: slugify(o.title)) description = FuzzyUnicode() image = factory.django.ImageField() product = factory.SubFactory(ProductFactory) display_order = factory.fuzzy.FuzzyInteger(10) visible = factory.fuzzy.FuzzyChoice([True, False]) in_aaq = factory.fuzzy.FuzzyChoice([True, False])
class ProfileFactory(factory.DjangoModelFactory): class Meta: model = Profile name = FuzzyUnicode() bio = FuzzyUnicode() website = 'http://support.example.com' timezone = None country = 'US' city = 'Portland' locale = 'en-US' user = factory.SubFactory(UserFactory, profile=None)
class ProfileFactory(factory.DjangoModelFactory): class Meta: model = Profile name = FuzzyUnicode() bio = FuzzyUnicode() website = "http://support.example.com" timezone = None country = "US" city = "Portland" locale = "en-US" is_fxa_migrated = True user = factory.SubFactory(UserFactory, profile=None)
class ProductFactory(factory.DjangoModelFactory): class Meta: model = Product title = FuzzyUnicode() slug = factory.LazyAttribute(lambda o: slugify(o.title)) description = FuzzyUnicode() display_order = factory.fuzzy.FuzzyInteger(10) visible = factory.fuzzy.FuzzyChoice([True, False]) image = factory.django.ImageField() image_offset = 0 image_cachebuster = FuzzyUnicode() sprite_height = 100
class AwardFactory(factory.DjangoModelFactory): class Meta: model = Award badge = factory.SubFactory(BadgeFactory) description = FuzzyUnicode() user = factory.SubFactory(UserFactory)
class RawJsonFactory(factory.Factory): class Meta: @staticmethod def model(**kwargs): # Unpack keys like foo__bar=1 into {'foo': {'bar': 1}} data = {} for key_path, val in kwargs.items(): keys = key_path.split('__') cursor = data for key in keys[:-1]: cursor = cursor.setdefault(key, {}) cursor[keys[-1]] = val return json.dumps(data) created_at = factory.LazyAttribute(lambda r: datetime.now()) geo = None id = factory.fuzzy.FuzzyInteger(10000000) iso_language_code = 'en' metadata__result_type = 'recent' source = ('<a href="http://www.tweetdeck.com" ' 'rel="nofollow">TweetDeck</a>') text = 'Hey #Firefox' to_user_id = None user__screen_name = FuzzyUnicode() user__profile_image_url = 'http://example.com/profile_image.jpg' user__profile_image_url_https = 'https://example.com/profile_image.jpg' @factory.lazy_attribute def created_at(data, **kwargs): created_at = datetime.now() return created_at.strftime('%a, %d %b %Y %H:%M:%S +0000')
class ThreadFactory(factory.DjangoModelFactory): class Meta: model = Thread created = factory.LazyAttribute(lambda t: datetime.now()) creator = factory.SubFactory(UserFactory) forum = factory.SubFactory(ForumFactory) title = FuzzyUnicode() @factory.post_generation def posts(obj, create, extracted, **kwargs): defaults = { "created": obj.created, "author": obj.creator, "thread": obj, } defaults.update(**kwargs) if extracted is None: posts = [PostFactory(**defaults)] else: posts = [] for args in extracted: args.update(defaults) posts.append(PostFactory(**args)) for post in posts: obj.post_set.add(post)
class RevisionFactory(factory.DjangoModelFactory): class Meta: model = Revision document = factory.SubFactory(DocumentFactory) summary = FuzzyUnicode() content = FuzzyUnicode() significance = SIGNIFICANCES[0][0] comment = FuzzyUnicode() creator = factory.SubFactory(UserFactory) is_approved = False @factory.post_generation def set_current_revision(obj, create, extracted, **kwargs): if obj.is_approved: obj.document.current_revision = obj obj.document.save()
class AnswerFactory(factory.DjangoModelFactory): class Meta: model = Answer content = FuzzyUnicode() created = factory.LazyAttribute(lambda a: datetime.now()) creator = factory.SubFactory(UserFactory) question = factory.SubFactory(QuestionFactory)
class DraftRevisionFactory(factory.DjangoModelFactory): class Meta: model = DraftRevision document = factory.SubFactory(DocumentFactory, is_localizable=True, locale=settings.WIKI_DEFAULT_LANGUAGE) based_on = factory.SubFactory(ApprovedRevisionFactory, is_ready_for_localization=True, document=factory.SelfAttribute('..document')) content = FuzzyUnicode() creator = factory.SubFactory(UserFactory) keywords = 'test, test1' locale = factory.fuzzy.FuzzyChoice(l for l in settings.SUMO_LANGUAGES if l != 'en-US') summary = FuzzyUnicode() title = FuzzyUnicode() slug = factory.LazyAttribute(lambda o: slugify(o.title))
class AnnouncementFactory(factory.DjangoModelFactory): class Meta: model = Announcement exclude = ["visible_dates"] content = FuzzyUnicode() creator = factory.SubFactory(UserFactory) show_after = factory.LazyAttribute( lambda a: datetime.now() - timedelta(days=2)) visible_dates = True @factory.lazy_attribute def show_until(self): if self.visible_dates: return None else: return datetime.now() - timedelta(days=1)
class DocumentFactory(factory.DjangoModelFactory): class Meta: model = Document category = CATEGORIES[0][0] title = FuzzyUnicode() slug = factory.LazyAttribute(lambda o: slugify(o.title)) @factory.post_generation def products(doc, create, extracted, **kwargs): if not create: # Simple build, do nothing return if extracted is not None: for p in extracted: doc.products.add(p) @factory.post_generation def topics(doc, create, extracted, **kwargs): if not create: # Simple build, do nothing return if extracted is not None: for t in extracted: doc.topics.add(t) @factory.post_generation def tags(doc, create, extracted, **kwargs): if not create: # Simple build, do nothing return if extracted is not None: for t in extracted: doc.tags.add(t)
class BadgeFactory(factory.DjangoModelFactory): class Meta: model = Badge description = FuzzyUnicode() title = FuzzyUnicode()
class TemplateDocumentFactory(DocumentFactory): category = TEMPLATES_CATEGORY title = FuzzyUnicode(prefix=TEMPLATE_TITLE_PREFIX + ':')
class SignatureFactory(factory.DjangoModelFactory): class Meta: model = Signature document = factory.SubFactory(DocumentFactory) signature = FuzzyUnicode()
class TagFactory(factory.DjangoModelFactory): class Meta: model = Tag name = FuzzyUnicode() slug = factory.LazyAttribute(lambda o: slugify(o.name))
class MetricKindFactory(factory.DjangoModelFactory): class Meta: model = MetricKind code = FuzzyUnicode()