Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
    def test_add_multiple_keys_with_one_person_and_not_existed_movies(self):
        with self.instance.test_request_context() as request:
            u = UserFactory()
            self.db.session.commit()

            keys = ['watchlist:1:movie:tt0167260:imdb',
                    'watchlist:1:movie:tt1229238:imdb',
                    'watchlist:1:movie:tt1272878:imdb']

            result = Watchlist.add(keys=keys)

            self.assertEqual(len(result), len(keys))
            for item in result:
                self.assertEqual(item.status, Watchlist.PENDING_MOVIE)

            movies = self.db.session.query(Movie).all()
            self.assertEqual(len(movies), len(keys))
Пример #4
0
    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)
Пример #5
0
def add_to_watchlist(**kwargs):
    logger = kwargs.get('logger', None)
    keys = kwargs.get('keys', [])
    provider = 'imdb'  # TODO: fix this later
    save_relations = kwargs.get('save_relations', False)

    if logger:
        logger.info('Adding movies to watchlist: start')
    result = Watchlist.add(keys=keys)

    if save_relations:
        if logger:
            logger.info('Adding movies to watchlist: save movies relations')
        movie_ids = [w.movie_id for w in result]

        movies = db.session.query(Movie).filter(Movie.id.in_(movie_ids)).all()
        for movie in movies:
            movie.save_poster(provider=provider, load_original=True)

            missing_movies = movie.save_relations()
            Movie.add(keys=missing_movies)
    if logger:
        logger.info('Adding movies to watchlist: end')
Пример #6
0
    def test_add_multiple_keys_with_various_persons_and_existed_movies(self):
        with self.instance.test_request_context() as request:
            u1 = UserFactory()
            u2 = UserFactory()
            self.db.session.commit()

            keys = ['watchlist:1:movie:tt0167260:imdb',
                    'watchlist:1:movie:tt1229238:imdb',
                    'watchlist:2:movie:tt1272878:imdb']

            result = Watchlist.add(keys=keys)

            self.assertEqual(len(result), len(keys))
            for item in result:
                self.assertEqual(item.status, Watchlist.PENDING_MOVIE)

            movies = self.db.session.query(Movie).all()
            self.assertEqual(len(movies), len(keys))

            u1_movies = self.db.session.query(Watchlist).filter(Watchlist.user_id == u1.id).all()
            self.assertEqual(len(u1_movies), 2)

            u2_movies = self.db.session.query(Watchlist).filter(Watchlist.user_id == u2.id).all()
            self.assertEqual(len(u2_movies), 1)