import factory from apollo_main_db.apollo.models import Market, StarredContent, UserMarket from apollo_main_db.apple.models import AppleMusicChart, AppleMusicChartSongEntry, AppleMusicSong from apollo_main_db.push_notifications.models import UserDeviceToken from apollo_main_db.spotify.models import SpotifyCharts, SpotifyTrack2 from factory import fuzzy from apollo_notifications.constants import SPOTIFY_URL_PREFIX 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 AppleMusicChartFactory(factory.alchemy.SQLAlchemyModelFactory): storefront = fuzzy.FuzzyText(length=2) chart_type = factory.Faker('pyint') chart_name = fuzzy.FuzzyText(length=10) date = factory.Faker("date") class Meta: model = AppleMusicChart sqlalchemy_session_persistence = 'commit' class AppleMusicChartSongEntryFactory(factory.alchemy.SQLAlchemyModelFactory): chart_id = factory.Faker('pyint') position = factory.Faker('pyint') song_id = factory.Faker('pyint') artist_name = fuzzy.FuzzyText(length=10) name = fuzzy.FuzzyText(length=10) class Meta: model = AppleMusicChartSongEntry sqlalchemy_session_persistence = 'commit' class AppleMusicSongFactory(factory.alchemy.SQLAlchemyModelFactory): id = factory.Faker('pyint') isrc = fuzzy.FuzzyText(length=20) class Meta: model = AppleMusicSong 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__()