Skip to content

Commit

Permalink
fixed how to factory generate dates so they are relative to a fixed d…
Browse files Browse the repository at this point in the history
…ate 2020, 1, 1 instead of 'today'
  • Loading branch information
mmmavis committed Jan 25, 2024
1 parent 2b615ea commit faf23d0
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 48 deletions.
11 changes: 3 additions & 8 deletions network-api/networkapi/highlights/factory.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from datetime import timezone
from datetime import datetime, timezone

from factory import Faker, LazyAttribute, Trait, post_generation
from factory import Faker, LazyAttribute, post_generation
from factory.django import DjangoModelFactory
from wagtail_factories import ImageFactory

Expand All @@ -18,17 +18,12 @@ class Meta:
"footer_sentence",
)

class Params:
unpublished = Trait(publish_after=Faker("future_datetime", end_date="+30d", tzinfo=timezone.utc))
has_expiry = Trait(expires=Faker("future_datetime", end_date="+30d", tzinfo=timezone.utc))
expired = Trait(expires=Faker("past_datetime", start_date="-30d", tzinfo=timezone.utc))

title = LazyAttribute(lambda o: o.title_sentence.rstrip("."))
description = Faker("paragraph", nb_sentences=5, variable_nb_sentences=True)
link_label = LazyAttribute(lambda o: " ".join(o.link_label_words))
footer = LazyAttribute(lambda o: o.footer_sentence.rstrip("."))
link_url = Faker("uri")
publish_after = Faker("past_datetime", start_date="-30d", tzinfo=timezone.utc)
publish_after = Faker("past_datetime", start_date=datetime(2020, 1, 1), tzinfo=timezone.utc)
expires = None
order = 0

Expand Down
25 changes: 3 additions & 22 deletions network-api/networkapi/news/factory.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from datetime import timezone
from datetime import datetime, timezone
from random import shuffle

from django.conf import settings
Expand Down Expand Up @@ -32,34 +32,15 @@ class Meta:
exclude = ("headline_sentence",)

class Params:
unpublished = Trait(
publish_after=Faker("date_time", tzinfo=timezone.utc)
if RANDOM_SEED and not TESTING
else Faker("future_datetime", end_date="+30d", tzinfo=timezone.utc)
)
has_expiry = Trait(
expires=Faker("date_time", tzinfo=timezone.utc)
if RANDOM_SEED and not TESTING
else Faker("future_datetime", end_date="+30d", tzinfo=timezone.utc)
)
expired = Trait(
expires=Faker("date_time", tzinfo=timezone.utc)
if RANDOM_SEED and not TESTING
else Faker("past_datetime", start_date="-30d", tzinfo=timezone.utc)
)
video = Trait(is_video=True)

headline = LazyAttribute(lambda o: o.headline_sentence.rstrip("."))
outlet = Faker("company")
date = Faker("date") if RANDOM_SEED and not TESTING else Faker("past_date", start_date="-30d")
date = Faker("past_date", start_date=datetime(2020, 1, 1), tzinfo=timezone.utc)
link = Faker("url")
excerpt = Faker("paragraph", nb_sentences=3, variable_nb_sentences=True)
author = Faker("name")
publish_after = (
Faker("date_time", tzinfo=timezone.utc)
if RANDOM_SEED and not TESTING
else Faker("past_datetime", start_date="-30d", tzinfo=timezone.utc)
)
publish_after = Faker("past_datetime", start_date=datetime(2020, 1, 1), tzinfo=timezone.utc)

# LazyAttribute helper value
headline_sentence = Faker("sentence", nb_words=4)
Expand Down
8 changes: 2 additions & 6 deletions network-api/networkapi/wagtailpages/factory/blog.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from datetime import timezone
from datetime import datetime, timezone
from random import choice

from django.conf import settings
Expand Down Expand Up @@ -88,11 +88,7 @@ class Meta:

title = LazyAttribute(lambda o: o.title_text.rstrip("."))
body = Faker("streamfield", fields=blog_body_streamfield_fields)
first_published_at = (
Faker("date_time", tzinfo=timezone.utc)
if RANDOM_SEED and not TESTING
else Faker("past_datetime", start_date="-30d", tzinfo=timezone.utc)
)
first_published_at = Faker("past_datetime", start_date=datetime(2020, 1, 1), tzinfo=timezone.utc)
search_description = Faker("paragraph", nb_sentences=5, variable_nb_sentences=True)
live = True

Expand Down
12 changes: 7 additions & 5 deletions network-api/networkapi/wagtailpages/factory/buyersguide.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,8 +153,10 @@ class Meta:
blurb = Faker("sentence")
product_url = Faker("url")
worst_case = Faker("sentence")
first_published_at = Faker("past_datetime", start_date="-2d", tzinfo=timezone.utc)
last_published_at = Faker("past_datetime", start_date="-1d", tzinfo=timezone.utc)
first_published_at = Faker("past_datetime", start_date=datetime(2020, 1, 1), tzinfo=timezone.utc)
last_published_at = Faker(
"date_time_between", start_date=first_published_at, end_date="today", tzinfo=timezone.utc
)
evaluation = SubFactory("networkapi.wagtailpages.factory.buyersguide.ProductPageEvaluationFactory")
locale = LazyFunction(lambda: Locale.get_default())

Expand Down Expand Up @@ -246,7 +248,7 @@ class Meta:

title = Faker("sentence")
hero_image = SubFactory(ImageFactory)
first_published_at = Faker("past_datetime", start_date="-30d", tzinfo=timezone.utc)
first_published_at = Faker("past_datetime", start_date=datetime(2020, 1, 1), tzinfo=timezone.utc)
search_image = SubFactory(ImageFactory)
search_description = Faker("paragraph", nb_sentences=5, variable_nb_sentences=True)
body = Faker(
Expand All @@ -271,7 +273,7 @@ class Meta:
header = Faker("sentence")
title = Faker("sentence")
cta = SubFactory(PetitionFactory)
first_published_at = Faker("past_datetime", start_date="-30d", tzinfo=timezone.utc)
first_published_at = Faker("past_datetime", start_date=datetime(2020, 1, 1), tzinfo=timezone.utc)
narrowed_page_content = Faker("boolean", chance_of_getting_true=50)
body = Faker(
provider="streamfield",
Expand All @@ -292,7 +294,7 @@ class Meta:

year = Faker("random_element", elements=(("2023", "2023"))) # Add extra years here once available
title = LazyAttribute(lambda o: f"Annual Consumer Creepometer {o.year}")
first_published_at = Faker("past_datetime", start_date="-30d", tzinfo=timezone.utc)
first_published_at = Faker("past_datetime", start_date=datetime(2020, 1, 1), tzinfo=timezone.utc)
search_image = SubFactory(ImageFactory)
search_description = Faker("paragraph", nb_sentences=5, variable_nb_sentences=True)

Expand Down
10 changes: 3 additions & 7 deletions network-api/networkapi/wagtailpages/factory/publication.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from datetime import timezone
from datetime import datetime, timezone
from random import randint, random, shuffle

from django.conf import settings
Expand Down Expand Up @@ -27,7 +27,7 @@ class PublicationPageFactory(PageFactory):
title = Faker("text", max_nb_chars=120)
subtitle = Faker("text", max_nb_chars=250)
secondary_subtitle = Faker("text", max_nb_chars=250)
publication_date = Faker("date_object")
first_published_at = Faker("past_datetime", start_date=datetime(2020, 1, 1), tzinfo=timezone.utc)
hero_image = SubFactory(ImageFactory)
publication_file = SubFactory(DocumentFactory)
intro_notes = Faker("sentence")
Expand All @@ -53,11 +53,7 @@ class Meta:
publication_date = Faker("date_object")
article_file = SubFactory(DocumentFactory)
body = Faker("streamfield", fields=article_body_streamfield_fields)
first_published_at = (
Faker("date_time", tzinfo=timezone.utc)
if RANDOM_SEED and not TESTING
else Faker("past_datetime", start_date="-30d", tzinfo=timezone.utc)
)
first_published_at = Faker("past_datetime", start_date=datetime(2020, 1, 1), tzinfo=timezone.utc)
search_description = Faker("paragraph", nb_sentences=5, variable_nb_sentences=True)
live = True

Expand Down

0 comments on commit faf23d0

Please sign in to comment.