import factory from apollo_notifications.constants import SPOTIFY_URL_PREFIX from factory import fuzzy from apollo_main_db.apollo.models import Market, StarredContent, UserMarket from apollo_main_db.push_notifications.models import UserDeviceToken from apollo_main_db.spotify.models import SpotifyCharts, SpotifyTrack2 class StarredContentFactory(factory.alchemy.SQLAlchemyModelFactory): user_id = fuzzy.FuzzyText(length=20) uri = fuzzy.FuzzyText(length=20) isrc = fuzzy.FuzzyText(length=20) class Meta: model = StarredContent sqlalchemy_session_persistence = "commit" class UserMarketFactory(factory.alchemy.SQLAlchemyModelFactory): user_id = fuzzy.FuzzyText(length=20) market_id = factory.Faker("pyint") class Meta: model = UserMarket sqlalchemy_session_persistence = "commit" class MarketFactory(factory.alchemy.SQLAlchemyModelFactory): market_id = factory.Faker("pyint") market_name = fuzzy.FuzzyText(length=20) class Meta: model = Market sqlalchemy_session_persistence = "commit" class UserDeviceFactory(factory.alchemy.SQLAlchemyModelFactory): user_id = fuzzy.FuzzyText(length=20) token = fuzzy.FuzzyText(length=20) is_active = factory.Faker("boolean") class Meta: model = UserDeviceToken sqlalchemy_session_persistence = "commit" class SpotifyChartsFactory(factory.alchemy.SQLAlchemyModelFactory): position = factory.Faker("pyint") track_url = factory.Sequence(lambda n: f"{SPOTIFY_URL_PREFIX}{n}") track_name = fuzzy.FuzzyText(length=100) artist_name = fuzzy.FuzzyText(length=100) market = fuzzy.FuzzyText(length=10) date = factory.Faker("date") time_window_id = 0 list_type_id = 0 isrc = fuzzy.FuzzyText(length=12) class Meta: model = SpotifyCharts sqlalchemy_session_persistence = "commit" class SpotifyTrack2Factory(factory.alchemy.SQLAlchemyModelFactory): id = fuzzy.FuzzyText(length=25) name = fuzzy.FuzzyText(length=25) isrc = fuzzy.FuzzyText(length=100) class Meta: model = SpotifyTrack2 sqlalchemy_session_persistence = "commit" factories = factory.alchemy.SQLAlchemyModelFactory.__subclasses__()