def test_make_key(self): provider = 'imdb' with self.instance.test_request_context() as request: u = UserFactory(login='******', email='*****@*****.**') m = MovieFactory() self.db.session.commit() mid = getattr(m, '%s_id' % provider) movie_key = Movie.make_key(provider=provider, id=mid) key = Watchlist.make_key(user_id=u.id, movie_key=movie_key) self.assertEqual(key, ':'.join(('watchlist', str(u.id), movie_key)))
def test_add_single_key_without_existed_movie(self): with self.instance.test_request_context() as request: u = UserFactory() self.db.session.commit() key = Watchlist.make_key(user_id=u.id, movie_key='movie:tt0167260:imdb') result = Watchlist.add(keys=(key,)) self.assertEqual(len(result), 1) self.assertTrue(isinstance(result[0], Watchlist)) self.assertEqual(result[0].status, Watchlist.PENDING_MOVIE) movies = self.db.session.query(Movie).all() self.assertEqual(len(movies), 1)
def test_add_single_key_with_existed_movie(self): provider = 'imdb' with self.instance.test_request_context() as request: u = UserFactory() m = MovieFactory() self.db.session.commit() mid = getattr(m, '%s_id' % provider) movie_key = Movie.make_key(provider=provider, id=mid) key = Watchlist.make_key(user_id=u.id, movie_key=movie_key) result = Watchlist.add(keys=(key,)) self.assertEqual(len(result), 1) self.assertTrue(isinstance(result[0], Watchlist)) self.assertEqual(result[0].status, Watchlist.PENDING_MOVIE)
def test_add_single_key_without_existed_movie(self): with self.instance.test_request_context() as request: u = UserFactory() self.db.session.commit() user_id = u.id key = Watchlist.make_key(user_id=u.id, movie_key='movie:tt0167260:imdb') add_to_watchlist(keys=(key,)) watchlist = self.db.session.query(Watchlist).filter(Watchlist.user_id == user_id).all() self.assertEqual(len(watchlist), 1) movies = self.db.session.query(Movie).all() self.assertEqual(len(movies), 1)
def fill_queue_from_csv(logger, **kwargs): user_id = str(kwargs.get('user_id')) provider = kwargs.get('provider') logger.info('Filling watchlist queue: start') path = os.path.join(instance.config.get('MEDIA_ROOT'), 'watchlists', user_id, '%s_watchlist.csv' % provider) if os.path.exists(path): with open(path, 'rb') as csvfile: reader = csv.reader(csvfile) for row in reader: if not str(row[1]).startswith('tt'): continue key = Watchlist.make_key( user_id, Movie.make_key(provider=provider, id=row[1])) redis.lpush(Watchlist.watchlist_key, key) logger.info('Filling watchlist queue: end') else: logger.info('Filling watchlist queue: watchlist file does not exists')
def test_add_already_existed_key(self): provider = 'imdb' with self.instance.test_request_context() as request: u = UserFactory() m = MovieFactory() self.db.session.commit() mid = getattr(m, '%s_id' % provider) movie_key = Movie.make_key(provider=provider, id=mid) w = Watchlist(user_id=u.id, movie_id=m.id) self.db.session.add(w) self.db.session.commit() key = Watchlist.make_key(user_id=u.id, movie_key=movie_key) result = Watchlist.add(keys=(key,)) self.assertEqual(len(result), 1) self.assertEqual(result[0].id, w.id)
def test_add_already_existed_key(self): provider = 'imdb' with self.instance.test_request_context() as request: u = UserFactory() m = MovieFactory() self.db.session.commit() user_id = u.id mid = getattr(m, '%s_id' % provider) movie_key = Movie.make_key(provider=provider, id=mid) w = Watchlist(user_id=u.id, movie_id=m.id) self.db.session.add(w) self.db.session.commit() key = Watchlist.make_key(user_id=u.id, movie_key=movie_key) add_to_watchlist(keys=(key,)) watchlist = self.db.session.query(Watchlist).filter(Watchlist.user_id == user_id).all() self.assertEqual(len(watchlist), 1)