From faf23d0f821efa408a663ff053be39c840af4f82 Mon Sep 17 00:00:00 2001 From: Mavis Ou Date: Thu, 25 Jan 2024 14:52:25 -0800 Subject: [PATCH] fixed how to factory generate dates so they are relative to a fixed date 2020, 1, 1 instead of 'today' --- network-api/networkapi/highlights/factory.py | 11 +++----- network-api/networkapi/news/factory.py | 25 +++---------------- .../networkapi/wagtailpages/factory/blog.py | 8 ++---- .../wagtailpages/factory/buyersguide.py | 12 +++++---- .../wagtailpages/factory/publication.py | 10 +++----- 5 files changed, 18 insertions(+), 48 deletions(-) diff --git a/network-api/networkapi/highlights/factory.py b/network-api/networkapi/highlights/factory.py index 84758daf955..031aa13cc2c 100644 --- a/network-api/networkapi/highlights/factory.py +++ b/network-api/networkapi/highlights/factory.py @@ -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 @@ -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 diff --git a/network-api/networkapi/news/factory.py b/network-api/networkapi/news/factory.py index f9d198f533e..7f42679419c 100644 --- a/network-api/networkapi/news/factory.py +++ b/network-api/networkapi/news/factory.py @@ -1,4 +1,4 @@ -from datetime import timezone +from datetime import datetime, timezone from random import shuffle from django.conf import settings @@ -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) diff --git a/network-api/networkapi/wagtailpages/factory/blog.py b/network-api/networkapi/wagtailpages/factory/blog.py index c0f6bc81866..556b13f8ae5 100644 --- a/network-api/networkapi/wagtailpages/factory/blog.py +++ b/network-api/networkapi/wagtailpages/factory/blog.py @@ -1,4 +1,4 @@ -from datetime import timezone +from datetime import datetime, timezone from random import choice from django.conf import settings @@ -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 diff --git a/network-api/networkapi/wagtailpages/factory/buyersguide.py b/network-api/networkapi/wagtailpages/factory/buyersguide.py index 7849c6c1380..ae31868b31e 100644 --- a/network-api/networkapi/wagtailpages/factory/buyersguide.py +++ b/network-api/networkapi/wagtailpages/factory/buyersguide.py @@ -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()) @@ -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( @@ -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", @@ -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) diff --git a/network-api/networkapi/wagtailpages/factory/publication.py b/network-api/networkapi/wagtailpages/factory/publication.py index 6dbc052f5c9..f44c0ec08f5 100644 --- a/network-api/networkapi/wagtailpages/factory/publication.py +++ b/network-api/networkapi/wagtailpages/factory/publication.py @@ -1,4 +1,4 @@ -from datetime import timezone +from datetime import datetime, timezone from random import randint, random, shuffle from django.conf import settings @@ -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") @@ -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