import factory 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 from spotify_charts_notifications.constants import SPOTIFY_URL_PREFIX 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' 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'