"""Fake factories.""" from datetime import datetime import factory from apollo_main_db.apollo import models as apollo_models from apollo_main_db.spotify import models as spotify_models from factory import fuzzy class SpotifyViewPlaylistFactory(factory.alchemy.SQLAlchemyModelFactory): type = fuzzy.FuzzyChoice( ( spotify_models.ViewPlaylistTypeEnum.HH, spotify_models.ViewPlaylistTypeEnum.NMF, spotify_models.ViewPlaylistTypeEnum.GTP, ) ) playlist_id = fuzzy.FuzzyText(length=22) market_code = fuzzy.FuzzyText(length=10) last_date = factory.Faker("date") last_added_ts = factory.LazyFunction(datetime.now) class Meta: model = spotify_models.SpotifyViewPlaylist sqlalchemy_session_persistence = "commit" class SpotifyMarketRankFactory(factory.alchemy.SQLAlchemyModelFactory): type = fuzzy.FuzzyChoice( ( spotify_models.MarketRankTypeEnum.NMF, spotify_models.MarketRankTypeEnum.HH, spotify_models.MarketRankTypeEnum.GENERAL, ) ) market_code = fuzzy.FuzzyText(length=10) rank = fuzzy.FuzzyInteger(1, 999) class Meta: model = spotify_models.SpotifyMarketRank sqlalchemy_session_persistence = "commit" class ApolloKeyValueStorageFactory(factory.alchemy.SQLAlchemyModelFactory): id = fuzzy.FuzzyInteger(1, 9999) key = fuzzy.FuzzyText(length=30) value = fuzzy.FuzzyText(length=30) class Meta: model = apollo_models.ApolloKeyValueStorage sqlalchemy_session_persistence = "commit" class SpotifyAnalyticsAccountStreamInfoFactory(factory.alchemy.SQLAlchemyModelFactory): account = fuzzy.FuzzyInteger(1, 999) market = fuzzy.FuzzyText(length=10) date = factory.Faker("date") total_streams = fuzzy.FuzzyInteger(0, 999999) class Meta: model = spotify_models.SpotifyAnalyticsAccountStreamInfo sqlalchemy_session_persistence = "commit" class ApolloMarketFactory(factory.alchemy.SQLAlchemyModelFactory): """Fake model for Market views.""" id = fuzzy.FuzzyInteger(1, 300) code = fuzzy.FuzzyText(length=2) name = fuzzy.FuzzyText(length=10) full_name = fuzzy.FuzzyText(length=10) is_primary = factory.Faker("boolean") vendors = factory.Faker("pyint") class Meta: model = apollo_models.ApolloMarket sqlalchemy_session_persistence = "commit" class SpotifyHotHitsPlaylistTrackStatsFactory(factory.alchemy.SQLAlchemyModelFactory): id = fuzzy.FuzzyInteger(1, 1000) isrc = fuzzy.FuzzyText(length=12) playlist_id = fuzzy.FuzzyText(length=22) entry_date = factory.Faker("date") latest_date = factory.Faker("date") latest_position = fuzzy.FuzzyInteger(0, 300) previous_date = factory.Faker("date") previous_position = fuzzy.FuzzyInteger(0, 300) peak_position = fuzzy.FuzzyInteger(0, 300) peak_date = factory.Faker("date") added_date = factory.Faker("date") in_history = factory.Faker("boolean") class Meta: model = spotify_models.SpotifyHotHitsPlaylistTrackStats sqlalchemy_session_persistence = "commit"