2021-06-30 21:09:24 -06:00
|
|
|
import factory
|
|
|
|
from factory.django import DjangoModelFactory
|
2024-04-24 09:50:42 -04:00
|
|
|
from factory.fuzzy import FuzzyAttribute
|
2021-06-30 21:09:24 -06:00
|
|
|
from faker import Faker
|
2024-04-24 09:50:42 -04:00
|
|
|
|
2021-06-30 21:09:24 -06:00
|
|
|
from apps.profile.factories import UserFactory
|
2024-04-24 09:50:42 -04:00
|
|
|
from apps.reader.models import Feature, UserSubscription, UserSubscriptionFolders
|
|
|
|
from apps.rss_feeds.factories import FeedFactory
|
2021-06-30 21:09:24 -06:00
|
|
|
|
|
|
|
fake = Faker()
|
|
|
|
|
2024-04-24 09:43:56 -04:00
|
|
|
|
2021-06-30 21:09:24 -06:00
|
|
|
def generate_folder():
|
|
|
|
string = '{"'
|
|
|
|
string += " ".join(fake.words(2))
|
|
|
|
string += '": ['
|
|
|
|
for _ in range(3):
|
|
|
|
string += f"{fake.pyint()}, "
|
|
|
|
string = string[:-2]
|
|
|
|
string += "]},"
|
|
|
|
return string
|
|
|
|
|
2024-04-24 09:43:56 -04:00
|
|
|
|
2021-06-30 21:09:24 -06:00
|
|
|
def generate_folders():
|
|
|
|
"""
|
|
|
|
"folders": "[5299728, 644144, 1187026, {\"Brainiacs & Opinion\": [569, 38, 3581, 183139, 1186180, 15]}, {\"Science & Technology\": [731503, 140145, 1272495, 76, 161, 39, {\"Hacker\": [5985150, 3323431]}]}, {\"Humor\": [212379, 3530, 5994357]}, {\"Videos\": [3240, 5168]}]"
|
|
|
|
"""
|
|
|
|
string = '"folders":['
|
2024-04-24 09:43:56 -04:00
|
|
|
|
2021-06-30 21:09:24 -06:00
|
|
|
for _ in range(3):
|
|
|
|
string += f"{fake.pyint()}, "
|
|
|
|
for _ in range(3):
|
|
|
|
string += generate_folder()
|
|
|
|
|
|
|
|
string = string[:-1] + "]"
|
|
|
|
return string
|
|
|
|
|
2024-04-24 09:43:56 -04:00
|
|
|
|
2021-06-30 21:09:24 -06:00
|
|
|
class UserSubscriptionFoldersFactory(DjangoModelFactory):
|
|
|
|
user = factory.SubFactory(UserFactory)
|
|
|
|
folders = FuzzyAttribute(generate_folders)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = UserSubscriptionFolders
|
|
|
|
|
2024-04-24 09:43:56 -04:00
|
|
|
|
2021-06-30 21:09:24 -06:00
|
|
|
class UserSubscriptionFactory(DjangoModelFactory):
|
|
|
|
user = factory.SubFactory(UserFactory)
|
|
|
|
feed = FuzzyAttribute(FeedFactory)
|
2024-04-24 09:43:56 -04:00
|
|
|
last_read_date = factory.Faker("date_time")
|
2021-06-30 21:09:24 -06:00
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = UserSubscription
|
|
|
|
|
|
|
|
|
|
|
|
class FeatureFactory(DjangoModelFactory):
|
2024-04-24 09:43:56 -04:00
|
|
|
description = factory.Faker("text")
|
|
|
|
date = factory.Faker("date_time")
|
|
|
|
|
2021-06-30 21:09:24 -06:00
|
|
|
class Meta:
|
|
|
|
model = Feature
|