Example #1
0
    def setUp( self ):
        # test user with no permissions
        self.u1 = User.objects.create_user( "user", "*****@*****.**", "user" )
        
        # test user with moderation_permission
        self.u2 = User.objects.create_user( "root", "*****@*****.**", "root" )
        self.u2.user_permissions.add( Permission.objects.get( codename="can_add_link" ) )
        self.u2.save()

        # set up film
        self.film = Film()
        self.film.title = "Battlefield Earth II"
        self.film.type = Object.TYPE_FILM
        self.film.permalink = "battlefirld-earth-ii"
        self.film.release_year = 2010
        self.film.save()

        # set up links
        self.link1 = ExternalLink( user=self.u2, film=self.film, permalink='LINK', version=1,
                            type=ExternalLink.TYPE_LINK, status=ExternalLink.PUBLIC_STATUS,
                                url_kind = ExternalLink.TRAILER, url="http://yt.com" )

        self.link2 = ExternalLink( user=self.u2, film=self.film, permalink='LINK', version=1,
                            type=ExternalLink.TYPE_LINK, status=ExternalLink.PUBLIC_STATUS,
                                url_kind = ExternalLink.TRAILER, url="http://yt.com/v=1" )
        self.link1.save()
        self.link2.save()
Example #2
0
    def setUp( self ):
        self.u1 = User.objects.create_user( "user", "*****@*****.**", "user" )
        self.u1.is_superuser = True
        self.u1.save()

        self.u2 = User.objects.create_user( "user2", "*****@*****.**", "user2" )
        self.u3 = User.objects.create_user( "user3", "*****@*****.**", "user3" )
        self.u4 = User.objects.create_user( "user4", "*****@*****.**", "user4" )

        self.f1 = Film()
        self.f1.title = "Battlefield Earth II"
        self.f1.type = Object.TYPE_FILM
        self.f1.permalink = "battlefirld-earth-ii"
        self.f1.release_year = 2010
        self.f1.production_country_list = "USA"
        self.f1.save()
        self.f1.save_tags( "sciencie-fiction komedia test1 test2", LANG="pl", saved_by=2)

        self.f2 = Film()
        self.f2.title = "Battlefield Earth II 2"
        self.f2.type = Object.TYPE_FILM
        self.f2.permalink = "battlefirld-earth-ii-2"
        self.f2.release_year = 2010
        self.f2.production_country_list = "USA"
        self.f2.save()
        self.f2.save_tags( "sciencie komedia test1", LANG="pl", saved_by=2)

        rating_helper.rate(self.u1, 1, self.f1.id)
        rating_helper.rate(self.u1, 2, self.f2.id)
        rating_helper.rate(self.u2, 3, self.f1.id)
        rating_helper.rate(self.u3, 3, self.f1.id)
        rating_helper.rate(self.u4, 3, self.f2.id)
Example #3
0
    def setUp(self):
        self.u1 = User.objects.create_user("user", "*****@*****.**", "user")
        self.u1.is_superuser = True
        self.u1.save()

        self.u2 = User.objects.create_user("user2", "*****@*****.**", "user2")
        self.u3 = User.objects.create_user("user3", "*****@*****.**", "user3")
        self.u4 = User.objects.create_user("user4", "*****@*****.**", "user4")

        self.f1 = Film()
        self.f1.title = "Battlefield Earth II"
        self.f1.type = Object.TYPE_FILM
        self.f1.permalink = "battlefirld-earth-ii"
        self.f1.release_year = 2010
        self.f1.production_country_list = "USA"
        self.f1.save()
        self.f1.save_tags("sciencie-fiction komedia test1 test2",
                          LANG="pl",
                          saved_by=2)

        self.f2 = Film()
        self.f2.title = "Battlefield Earth II 2"
        self.f2.type = Object.TYPE_FILM
        self.f2.permalink = "battlefirld-earth-ii-2"
        self.f2.release_year = 2010
        self.f2.production_country_list = "USA"
        self.f2.save()
        self.f2.save_tags("sciencie komedia test1", LANG="pl", saved_by=2)

        rating_helper.rate(self.u1, 1, self.f1.id)
        rating_helper.rate(self.u1, 2, self.f2.id)
        rating_helper.rate(self.u2, 3, self.f1.id)
        rating_helper.rate(self.u3, 3, self.f1.id)
        rating_helper.rate(self.u4, 3, self.f2.id)
Example #4
0
    def refill_tag_basket(cls, user, tag):

        TAG_BASKET_SIZE = getattr(settings, 'TAG_BASKET_SIZE')
        MIN_TAG_BASKET_SIZE = getattr(settings, 'MIN_TAG_BASKET_SIZE')
        try:
            lang = user.get_profile().LANG
        except AttributeError:
            lang = 'en'

        basket_key = cache.Key(cache.CACHE_TAG_BASKET, user, tag)
        tag_basket = cache.get(basket_key) or dict()

        if len(tag_basket) < MIN_TAG_BASKET_SIZE:
            # get films with this tag
            films_dict = Film.get_film_ids_by_tag(tag, lang)
            # get films seen by user
            seen_films = Film.get_user_seen_films(user)

            # remove films seen by user
            films_dict = dict([(k,v) for k,v in films_dict.items() if k not in seen_films])
            # how many we want to refill
            to_refill = TAG_BASKET_SIZE - len(tag_basket)
            # reverse sort by popularity
            sorted_films = sorted(films_dict, key=films_dict.get, reverse=True)[:to_refill]
            refill_dict = dict([(fid, films_dict[fid]) for fid in sorted_films])

            tag_basket.update(refill_dict)
            cache.set(basket_key, tag_basket, cache.A_MONTH)
Example #5
0
class FilmBasketTestCase(TestCase):
    def setUp(self):
        self.user = User.objects.create_user("user", "*****@*****.**", "user")

        self.film = Film( type=1, permalink='przypadek', imdb_code=111, status=1, version=1, \
                            release_year=1999, title='Przypadek' )
        self.film.save()

    def tearDown(self):
        User.objects.all().delete()
        Film.objects.all().delete()
        BasketItem.objects.all().delete()

    def testRatingRemoveFromWishlist(self):

        BasketItem.objects.create(film=self.film,
                                  wishlist=BasketItem.DYING_FOR,
                                  user=self.user)

        self.assertEqual(len(BasketItem.user_basket(self.user)), 1)

        rating_helper.rate(self.user, 5, film_id=self.film.id)

        bi = BasketItem.objects.get(film=self.film, user=self.user)
        self.assertTrue(bi.wishlist is None)
Example #6
0
def get_seen_films(user):
    if settings.USE_REDIS:
        seen_ids = redis_intf.get_seen_films(user)
    else:
        seen_ids = Film._recently_seen_film_ids(user)
        seen_ids.difference_update(Film._long_ago_seen_film_ids(user))
    return seen_ids
Example #7
0
    def initialize(self):
        self.clean_data()

        # set up users
        self.u1 = User.objects.create_user('michuk',
                                           '*****@*****.**',
                                           'secret')
        self.u1.save()

        # set up film
        self.film = Film()
        self.film.id = 233
        self.film.title = "Battlefield Earth II"
        self.film.type = Object.TYPE_FILM
        self.film.permalink = "battlefirld-earth-ii"
        self.film.release_year = 2010
        self.film.save(saved_by=2)
        self.film.save_tags("tag1", LANG="pl", saved_by=2)

        # set up film
        self.film1 = Film()
        self.film1.id = 236
        self.film1.title = "Battlefield Earth III"
        self.film1.type = Object.TYPE_FILM
        self.film1.permalink = "battlefirld-earth-iii"
        self.film1.release_year = 2011
        self.film1.save(saved_by=2)
        self.film1.save_tags("tag2", LANG="pl", saved_by=2)

        # set up activities
        sr = UserActivity(user=self.u1,
                          film=self.film,
                          object=self.film,
                          content="Lorem",
                          activity_type=UserActivity.TYPE_SHORT_REVIEW,
                          featured=True)
        sr.save()

        sr1 = UserActivity()
        sr1.user = self.u1
        sr1.film = self.film1
        sr1.object = self.film1
        sr1.content = "ipsum"
        sr1.activity_type = UserActivity.TYPE_SHORT_REVIEW
        sr1.featured = True
        sr1.save()

        rating1 = UserActivity()
        rating1.activity_type = UserActivity.TYPE_RATING
        rating1.user = self.u1
        rating1.object = self.film
        rating1.featured = True
        rating1.save()

        rating2 = UserActivity()
        rating2.activity_type = UserActivity.TYPE_RATING
        rating2.user = self.u1
        rating2.object = self.film
        rating2.featured = True
        rating2.save()
Example #8
0
class FilmBasketTestCase( TestCase ):

    def setUp( self ):
        self.user = User.objects.create_user( "user", "*****@*****.**", "user" )

        self.film = Film( type=1, permalink='przypadek', imdb_code=111, status=1, version=1, \
                            release_year=1999, title='Przypadek' )
        self.film.save()



    def tearDown( self ):
        User.objects.all().delete()
        Film.objects.all().delete()
        Rating.objects.all().delete()
        BasketItem.objects.all().delete()

    def testRatingRemoveFromWishlist( self ):

        BasketItem.objects.create( film=self.film, wishlist=BasketItem.DYING_FOR, user=self.user )

        self.assertEqual( len( BasketItem.user_basket( self.user ) ), 1 )

        Rating.objects.create( type=Rating.TYPE_FILM, film=self.film, rating=5, 
                                parent=self.film, user=self.user)
    
        bi = BasketItem.objects.get( film=self.film, user=self.user )
        self.assertTrue( bi.wishlist is None )
Example #9
0
def film_from_film_on_channel(f):
    film = Film(
        title=f.title,
        permalink="unmatched-film-%d" % f.pk,
        image=None,
        production_country_list='',
    )
    film._directors = f.directors
    return film
Example #10
0
 def get_films(self):
     key = cache.Key("festival_films", self)
     films = cache.get(key)
     if films is None:
         films = Film.objects.tagged(self.tag.lower())
         films = list(films[:1000])
         Film.update_ranking(films)
         cache.set(key, films)
     return films
Example #11
0
def film_from_film_on_channel(f):
    film = Film(
        title=f.title, 
        permalink="unmatched-film-%d" % f.pk, 
        image=None,
        production_country_list='',
    )
    film._directors = f.directors
    return film
Example #12
0
 def get_films(self):
     key = cache.Key("festival_films", self)
     films = cache.get(key)
     if films is None:
         films = Film.objects.tagged(self.tag.lower())
         films = list(films[:1000])
         Film.update_ranking(films)
         cache.set(key, films)
     return films
Example #13
0
    def setUp(self):

        # set up films
        self.film1 = Film()
        self.film1.title = "Battlefield Earth II"
        self.film1.type = Object.TYPE_FILM
        self.film1.permalink = "battlefirld-earth-ii"
        self.film1.release_year = 2010
        self.film1.production_country_list = "USA"
        self.film1.save()
        self.film1.save_tags("sciencie-fiction komedia test1 test2",
                             LANG="pl",
                             saved_by=2)

        self.film2 = Film()
        self.film2.title = "Battlefield Earth III"
        self.film2.type = Object.TYPE_FILM
        self.film2.permalink = "battlefirld-earth-iii"
        self.film2.release_year = 2011
        self.film2.production_country_list = "USA"
        self.film2.save()
        self.film2.save_tags("sciencie-fiction komedia test1",
                             LANG="pl",
                             saved_by=2)

        self.film3 = Film()
        self.film3.title = "Battlefield Earth IV"
        self.film3.type = Object.TYPE_FILM
        self.film3.permalink = "battlefirld-earth-iv"
        self.film3.release_year = 2012
        self.film3.production_country_list = "Italy"
        self.film3.save()
        self.film3.save_tags("sciencie-fiction komedia test3 test5",
                             LANG="pl",
                             saved_by=2)

        self.film4 = Film()
        self.film4.title = "Battlefield Earth V"
        self.film4.type = Object.TYPE_FILM
        self.film4.permalink = "battlefirld-earth-v"
        self.film4.release_year = 2013
        self.film4.production_country_list = "UK"
        self.film4.save()
        self.film4.save_tags("sciencie-fiction komedia test5",
                             LANG="en",
                             saved_by=2)
        self.film4.save_tags("sciencie-fiction komedia", LANG="en", saved_by=2)

        self.film5 = Film()
        self.film5.title = "Battlefield Earth VI"
        self.film5.type = Object.TYPE_FILM
        self.film5.permalink = "battlefirld-earth-vi"
        self.film5.release_year = 2013
        self.film5.production_country_list = "UK"
        self.film5.save()
        self.film5.save_tags("sciencie-fiction comedy", LANG="en", saved_by=2)
Example #14
0
    def testQueuedItem(self):
        self.assertEqual(QueuedItem.objects.count(), 1)
        self.assertTrue(
            isinstance(QueuedItem.objects.all()[0].content_object, User))

        f = Film( type=1, permalink='przypadek', imdb_code=111, status=1, version=1, \
                 release_year=1999, title='Przypadek' )
        f.save()

        self.assertEqual(QueuedItem.objects.count(), 3)
        self.assertTrue(
            isinstance(QueuedItem.objects.all()[1].content_object, Film))

        modified_at = QueuedItem.objects.all()[1].modified_at

        f.title = 'Przypadek - test'
        f.save()

        self.assertEqual(QueuedItem.objects.count(), 3)
        self.assertTrue(QueuedItem.objects.all()[1].modified_at > modified_at)

        f.delete()

        self.assertEqual(QueuedItem.objects.all()[1].action_type,
                         QueuedItem.ACTION_REMOVED)
        self.assertEqual(QueuedItem.objects.count(), 3)
Example #15
0
    def initialize(self):
        self.clean_data()

        # set up users
        self.u1= User.objects.create_user('michuk', '*****@*****.**', 'secret')
        self.u1.save()

        # set up film
        self.film = Film()
        self.film.id = 233
        self.film.title = "Battlefield Earth II"
        self.film.type = Object.TYPE_FILM
        self.film.permalink = "battlefirld-earth-ii"
        self.film.release_year = 2010
        self.film.save(saved_by=2)
        self.film.save_tags("tag1", LANG="pl", saved_by=2)

        # set up film
        self.film1 = Film()
        self.film1.id = 236
        self.film1.title = "Battlefield Earth III"
        self.film1.type = Object.TYPE_FILM
        self.film1.permalink = "battlefirld-earth-iii"
        self.film1.release_year = 2011
        self.film1.save(saved_by=2)
        self.film1.save_tags("tag2", LANG="pl", saved_by=2)

        # set up activities
        sr = UserActivity(user=self.u1, film=self.film, object=self.film,
                content="Lorem", activity_type=UserActivity.TYPE_SHORT_REVIEW,
                featured=True)
        sr.save()

        sr1 = UserActivity()
        sr1.user = self.u1
        sr1.film = self.film1
        sr1.object = self.film1
        sr1.content = "ipsum"
        sr1.activity_type = UserActivity.TYPE_SHORT_REVIEW
        sr1.featured = True
        sr1.save()

        rating1 = UserActivity()
        rating1.activity_type = UserActivity.TYPE_RATING
        rating1.user = self.u1
        rating1.object = self.film
        rating1.featured = True
        rating1.save()

        rating2 = UserActivity()
        rating2.activity_type = UserActivity.TYPE_RATING
        rating2.user = self.u1
        rating2.object = self.film
        rating2.featured = True
        rating2.save()
Example #16
0
    def test_filmindb(self):
        """
            Test failed fetch movie in db
        """
        self.initialize()

        self.client.login(username=self.user.username, password='******')

        film_to_import = FilmToImport(user = self.user,
                                  title = 'Elektroniczny Morderca',
                                  imdb_url = 'http://www.imdb.com/title/tt0088247/',
					              imdb_id='0088247',
                                  status=FilmToImport.ACCEPTED)

        film_to_import.save()

        film = Film()
        film.title = "The Terminator"
        film.type = Object.TYPE_FILM
        film.imdb_code = "0088247"
        film.permalink = "the-terminator"
        film.release_year = 1984
        film.save()

        run(False, False, False, False, False, True, "http")

        film_to_import = FilmToImport.objects.get(title = 'Elektroniczny Morderca')
        self.assertEqual(film_to_import.attempts, 1)
        self.assertEqual(film_to_import.status, FilmToImport.ALREADY_IN_DB)
Example #17
0
class RequestTestCase(TestCase):
    fixtures = ['test_users.json']

    def setUp(self):
        self.user = User.objects.get(username='******')
        self.user.set_password('bob')
        self.user.save()

        self.film = Film(type=1,
                         permalink='przypadek',
                         imdb_code=111,
                         status=1,
                         version=1,
                         release_year=1999,
                         title='Przypadek',
                         popularity=1,
                         popularity_month=1)
        self.film.save()

        self.person = Person(type=2,
                             permalink='jerzy-stuhr',
                             imdb_code=112,
                             status=1,
                             version=1,
                             name='Jerzy',
                             surname='Stuhr')
        self.person.save()

    def test_index(self):
        response = self.client.get('/')
        self.failUnlessEqual(response.status_code, 200)

    def test_film(self):
        response = self.client.get('/film/przypadek/')
        self.failUnlessEqual(response.status_code, 200)

    def test_film_authorized(self):
        self.client.login(username='******', password='******')
        response = self.client.get('/film/przypadek/')
        self.assertTrue(response.context['request'].user.is_authenticated())
        self.failUnlessEqual(response.status_code, 200)

    def test_person(self):
        response = self.client.get(self.person.get_absolute_url())
        self.assertEquals(response.status_code, 200)

    def test_person_authorized(self):
        self.client.login(username='******', password='******')
        response = self.client.get(self.person.get_absolute_url())
        self.assertEquals(response.status_code, 200)

    def tearDown(self):
        Person.objects.all().delete()
        Film.objects.all().delete()
Example #18
0
    def testQueueCommand( self ):
        f = Film( type=1, permalink='przypadek', imdb_code=111, status=1, version=1, \
                 release_year=1999, title='Przypadek' )
        f.save()
        f.delete()
    
        self.assertEqual( QueuedItem.objects.count(), 3 )

        call_command( 'update_index_queue' )
        
        self.assertEqual( QueuedItem.objects.count(), 1 )
Example #19
0
class SimilarFilmsTestCase(TestCase):
    def setUp(self):
        self.u1 = User.objects.create_user("user1", "*****@*****.**", "user")
        self.u2 = User.objects.create_user("user2", "*****@*****.**", "user")
        self.u3 = User.objects.create_user("user3", "*****@*****.**", "user")

        self.f1 = Film()
        self.f1.title = "Battlefield Earth"
        self.f1.type = Film.TYPE_FILM
        self.f1.permalink = "battlefirld-earth"
        self.f1.release_year = 208
        self.f1.production_country_list = "USA"
        self.f1.save()

        self.f2 = Film()
        self.f2.title = "Battlefield Earth II"
        self.f2.type = Film.TYPE_FILM
        self.f2.permalink = "battlefirld-earth-ii"
        self.f2.release_year = 2010
        self.f2.production_country_list = "USA"
        self.f2.save()

    def tearsDown(self):
        Film.objects.all().delete()
        SimilarFilm.objects.all().delete()

    def test_votes(self):
        SimilarFilm.add_vote(user=self.u1, film_a=self.f1, film_b=self.f2)  #1
        SimilarFilm.add_vote(user=self.u2, film_a=self.f1, film_b=self.f2)  #2
        SimilarFilm.add_vote(user=self.u3, film_a=self.f1, film_b=self.f2)  #3

        SimilarFilm.add_vote(user=self.u3, film_a=self.f2, film_b=self.f1)  #4

        self.assertEqual(SimilarFilm.objects.filter(film_a=self.f1).count(), 1)

        similar = SimilarFilm.objects.get(film_a=self.f1)
        self.assertEqual(similar.number_of_votes, 3)

        SimilarFilm.remove_vote(user=self.u1, film_a=self.f1,
                                film_b=self.f2)  #2

        similar = SimilarFilm.objects.get(film_a=self.f1)
        self.assertEqual(similar.number_of_votes, 2)

        SimilarFilm.remove_vote(user=self.u2, film_a=self.f1,
                                film_b=self.f2)  #1

        similar = SimilarFilm.objects.get(film_a=self.f1)
        self.assertEqual(similar.number_of_votes, 1)

        SimilarFilm.remove_vote(user=self.u3, film_a=self.f1,
                                film_b=self.f2)  #1

        self.assertEqual(SimilarFilm.objects.filter(film_a=self.f1).count(), 0)
class SimilarFilmsTestCase( TestCase ):

    def setUp( self ):
        self.u1 = User.objects.create_user( "user1", "*****@*****.**", "user" )
        self.u2 = User.objects.create_user( "user2", "*****@*****.**", "user" )
        self.u3 = User.objects.create_user( "user3", "*****@*****.**", "user" )

        self.f1 = Film()
        self.f1.title = "Battlefield Earth"
        self.f1.type = Film.TYPE_FILM
        self.f1.permalink = "battlefirld-earth"
        self.f1.release_year = 208
        self.f1.production_country_list = "USA"
        self.f1.save()

        self.f2 = Film()
        self.f2.title = "Battlefield Earth II"
        self.f2.type = Film.TYPE_FILM
        self.f2.permalink = "battlefirld-earth-ii"
        self.f2.release_year = 2010
        self.f2.production_country_list = "USA"
        self.f2.save()

    def tearsDown( self ):
        Film.objects.all().delete()
        SimilarFilm.objects.all().delete()

    def test_votes( self ):
        SimilarFilm.add_vote( user=self.u1, film_a=self.f1, film_b=self.f2 )#1
        SimilarFilm.add_vote( user=self.u2, film_a=self.f1, film_b=self.f2 )#2
        SimilarFilm.add_vote( user=self.u3, film_a=self.f1, film_b=self.f2 )#3
        
        SimilarFilm.add_vote( user=self.u3, film_a=self.f2, film_b=self.f1 )#4
        

        self.assertEqual( SimilarFilm.objects.filter( film_a=self.f1 ).count(), 1 )
        
        similar = SimilarFilm.objects.get( film_a=self.f1 )
        self.assertEqual( similar.number_of_votes, 3 )

        SimilarFilm.remove_vote( user=self.u1, film_a=self.f1, film_b=self.f2 )#2

        similar = SimilarFilm.objects.get( film_a=self.f1 )
        self.assertEqual( similar.number_of_votes, 2 )

        SimilarFilm.remove_vote( user=self.u2, film_a=self.f1, film_b=self.f2 )#1

        similar = SimilarFilm.objects.get( film_a=self.f1 )
        self.assertEqual( similar.number_of_votes, 1 )

        SimilarFilm.remove_vote( user=self.u3, film_a=self.f1, film_b=self.f2 )#1

        self.assertEqual( SimilarFilm.objects.filter( film_a=self.f1 ).count(), 0 )
Example #21
0
    def setUp(self):

        # set up films
        self.film1 = Film()
        self.film1.title = "Film 1"
        self.film1.type = Object.TYPE_FILM
        self.film1.permalink = "film-1"
        self.film1.release_year = 2010
        self.film1.production_country_list = "USA"
        self.film1.save()
        self.film1.save_tags("dramat komedia ", LANG="pl", saved_by=2)
        self.film1.save_tags("drama comedy wizards ", LANG="en", saved_by=2)
Example #22
0
    def test_watching_notification(self):
        """
            Testing notifications for different types of activities (posts, short reviews and threads)
        """
        self.initialize()
        activity = UserActivity.objects.get_for_object(self.post1)

        # create two comments for blog post by two different users
        t = ThreadedComment(user=self.u2,
                            comment="This is a comment",
                            content_object=activity,
                            type=Object.TYPE_COMMENT)
        t.save()
        t = ThreadedComment(user=self.u3,
                            comment="This is also a comment",
                            content_object=activity,
                            type=Object.TYPE_COMMENT)
        t.save()

        # create film and a short review and a comment to it
        f1 = Film(type=1,
                  permalink='przypadek',
                  imdb_code=111,
                  status=1,
                  version=1,
                  release_year=1999,
                  title='Przypadek',
                  popularity=1,
                  popularity_month=1)
        f1.save()
        sr = ShortReview(user=self.u1,
                         review_text="This is a short review",
                         object=f1,
                         type=Object.TYPE_SHORT_REVIEW)
        sr.save()
        activity2 = UserActivity.objects.get_for_object(sr)
        t = ThreadedComment(user=self.u2,
                            comment="This is a comment to a short review",
                            content_object=activity2,
                            type=Object.TYPE_COMMENT)
        t.save()

        # assert all is fine
        watching_objects = Watching.objects.all()
        self.assertEquals(
            len(watching_objects), 5
        )  # number of unique comments in threads should be equal to watching objects

        reply_notices = notification.Notice.objects.filter(
            notice_type__label='reply')

        # TODO: uncommend and fix in http://jira.filmaster.org/browse/FLM-1116
        self.assertEquals(len(reply_notices), 4)  # number of notices
Example #23
0
    def create_films(self):
        self.film1 = Film()
        self.film1.title = "The Terminator"
        self.film1.type = Object.TYPE_FILM
        self.film1.permalink = "the-terminator"
        self.film1.release_year = 1984
        self.film1.save()

        self.film2 = Film()
        self.film2.title = "Rambo"
        self.film2.type = Object.TYPE_FILM
        self.film2.permalink = "rambo"
        self.film2.release_year = 1982
        self.film2.save()
Example #24
0
    def initialize(self):
        self.clean_data()

        # set up users
        self.u1= User.objects.create_user('michuk', '*****@*****.**', 'secret')
        self.u1.save()

        # set up film
        self.film = Film()
        self.film.title = "Battlefield Earth II"
        self.film.type = Object.TYPE_FILM
        self.film.permalink = "battlefirld-earth-ii"
        self.film.release_year = 2010
        self.film.save()
Example #25
0
    def test_filmindb(self):
        """
            Test failed fetch movie in db
        """
        self.initialize()

        self.client.login(username=self.user.username, password='******')

        film_to_import = FilmToImport(user = self.user,
                                  title = 'Elektroniczny Morderca',
                                  imdb_url = 'http://www.imdb.com/title/tt0088247/',
					              imdb_id='0088247',
                                  status=FilmToImport.ACCEPTED)

        film_to_import.save()

        film = Film()
        film.title = "The Terminator"
        film.type = Object.TYPE_FILM
        film.imdb_code = "0088247"
        film.permalink = "the-terminator"
        film.release_year = 1984
        film.save()

        run(False, False, False, False, False, True, "http")

        film_to_import = FilmToImport.objects.get(title = 'Elektroniczny Morderca')
        self.assertEqual(film_to_import.attempts, 1)
        self.assertEqual(film_to_import.status, FilmToImport.ALREADY_IN_DB)
Example #26
0
    def create_films(self):
        self.film1 = Film()
        self.film1.title = "The Terminator"
        self.film1.type = Object.TYPE_FILM
        self.film1.permalink = "the-terminator"
        self.film1.release_year = 1984
        self.film1.save()

        self.film2 = Film()
        self.film2.title = "Rambo"
        self.film2.type = Object.TYPE_FILM
        self.film2.permalink = "rambo"
        self.film2.release_year = 1982
        self.film2.save()
Example #27
0
    def initialize(self):
        self.clean_data()

        # set up film
        self.film = Film()
        self.film.title = "Battlefield Earth II"
        self.film.type = Film.TYPE_FILM
        self.film.permalink = "battlefirld-earth-ii"
        self.film.release_year = 2010
        self.film.save()
        filename = "First_blood_poster.jpg"
        myfile = MEDIA_ROOT + "test/First_blood_poster.jpg"
        f = open(myfile, 'rb')
        myfile = File(f)
        self.film.image.save(filename, myfile)
Example #28
0
    def initialize(self):

        self.clean_data()

        film = Film()
        film.title = "The Terminator"
        film.type = Object.TYPE_FILM
        film.imdb_code = "0088247"
        film.permalink = "the-terminator"
        film.release_year = 1984
        film.save()
        self.film = film
Example #29
0
    def setUp( self ):

        # set up films
        self.film1 = Film()
        self.film1.title = "Battlefield Earth II"
        self.film1.type = Object.TYPE_FILM
        self.film1.permalink = "battlefirld-earth-ii"
        self.film1.release_year = 2010
        self.film1.production_country_list = "USA"
        self.film1.save()
        self.film1.save_tags( "sciencie-fiction komedia test1 test2", LANG="pl", saved_by=2)

        self.film2 = Film()
        self.film2.title = "Battlefield Earth III"
        self.film2.type = Object.TYPE_FILM
        self.film2.permalink = "battlefirld-earth-iii"
        self.film2.release_year = 2011
        self.film2.production_country_list = "USA"
        self.film2.save()
        self.film2.save_tags("sciencie-fiction komedia test1", LANG="pl", saved_by=2)

        self.film3 = Film()
        self.film3.title = "Battlefield Earth IV"
        self.film3.type = Object.TYPE_FILM
        self.film3.permalink = "battlefirld-earth-iv"
        self.film3.release_year = 2012
        self.film3.production_country_list = "Italy"
        self.film3.save()
        self.film3.save_tags("sciencie-fiction komedia test3 test5", LANG="pl", saved_by=2)

        self.film4 = Film()
        self.film4.title = "Battlefield Earth V"
        self.film4.type = Object.TYPE_FILM
        self.film4.permalink = "battlefirld-earth-v"
        self.film4.release_year = 2013
        self.film4.production_country_list = "UK"
        self.film4.save()
        self.film4.save_tags("sciencie-fiction komedia test5", LANG="en", saved_by=2)
        self.film4.save_tags("sciencie-fiction komedia", LANG="en", saved_by=2)

        self.film5 = Film()
        self.film5.title = "Battlefield Earth VI"
        self.film5.type = Object.TYPE_FILM
        self.film5.permalink = "battlefirld-earth-vi"
        self.film5.release_year = 2013
        self.film5.production_country_list = "UK"
        self.film5.save()
        self.film5.save_tags("sciencie-fiction comedy", LANG="en", saved_by=2)
Example #30
0
def random_film_to_rate(request):
    """
        Widget for main page (for not logged in users)
        displaying a film to rate, selected from
        the list of 10 most popular films.
    """

    user = request.user

    if user.is_authenticated():
        film = Film.get_next_film_to_rate(user)
    else:
        key = cache.Key("popular_films_list")

        popular_films = cache.get(key)

        if popular_films is None:
            fhelper = FilmHelper()
            lang = getattr(settings, 'LANGUAGE_CODE', 'en')
            if lang == 'en':
                popular_films = fhelper.get_popular_films(
                    exclude_nonEnglish=True)
            else:
                popular_films = fhelper.get_popular_films()
            cache.set(key, popular_films)

        film = popular_films and random.choice(popular_films) or None

    return {
        'film': film,
    }
Example #31
0
def user_recommendations(user, films, with_rated=False, order_by=None):
    film_ids = [f.id for f in films]

    if user and user.is_authenticated():
        profile = user.get_profile()
        basket = BasketItem.user_basket(user)
        rated_ids = Film._rated_film_ids(user)
        if profile.recommendations_status in (profile.NORMAL_RECOMMENDATIONS, profile.FAST_RECOMMENDATIONS):
            recommendations = _user_film_recommendations(user, film_ids)
        else:
            recommendations = {}

        for f in films:
            r = recommendations.get(f.id)
            b = basket.get(f.id)
            f._rated = f.id in rated_ids
            f._guess_rating = r or 0
            f._on_wishlist = b and b[0] and (b[0] != BasketItem.NOT_INTERESTED) or False
            f._on_shitlist = b and (b[0] == BasketItem.NOT_INTERESTED) or False
    else:
        for f in films:
            f._rated = False
            f._guess_rating = 0
            f._on_wishlist = False
            f._on_shitlist = False

    test_with_rated = lambda f: with_rated or not f._rated

    films = list(f for f in films if not f._on_shitlist and test_with_rated(f))

    comparator = create_film_comparator(order_by)
    return sorted(films, cmp=comparator)
Example #32
0
def show_event(request, permalink, ajax=None):
    event = get_object_or_404(Event, permalink=permalink)
    nominated = Nominated.objects.with_rates(event)
    for n in nominated:
        if n.film_id:
            n.film = Film.get(id=n.film_id)
        if n.person_id:
            n.person = Person.get(id=n.person_id)
    categories = []
    for type, items in groupby(nominated, lambda n: n.oscar_type):
        items = list(items)
        if event.event_status == Event.STATUS_OPEN:
            shuffle(list(items))
        if items:
            categories.append({
                'name': items[0].get_category_name(),
                'nominated': items,
            })

    ctx = {
        'event': event,
        'categories': categories,
    }

    return render_to_response('event/event.html',
                              ctx,
                              context_instance=RequestContext(request))
Example #33
0
    def get_films_to_rate(self, number_of_films=1, tag=None):
        key = cache.Key("vue_rater_user_films", self.user)
        user_films = cache.get(key)
        if user_films is None:
            user_films = vue.get_ordered_known_film_ids()
            if self.SHUFFLE_BLOCK_SIZE:
                shuffled = []
                while user_films:
                    block = user_films[:self.SHUFFLE_BLOCK_SIZE]
                    user_films = user_films[self.SHUFFLE_BLOCK_SIZE:]
                    random.shuffle(block)
                    shuffled.extend(block)
                user_films = shuffled
            cache.set(key, user_films)

        excluded = self.get_excluded_films()

        out = []
        for film_id in user_films:
            if film_id not in excluded:
                out.append(film_id)
            if len(out) >= number_of_films:
                break
        out = [Film.get(id=id) for id in out]
        return out
Example #34
0
def show_event(request, permalink, ajax=None):
    event = get_object_or_404(Event,permalink = permalink)
    nominated = Nominated.objects.with_rates(event)
    for n in nominated:
        if n.film_id:
            n.film = Film.get(id=n.film_id)
        if n.person_id:
            n.person = Person.get(id=n.person_id)
    categories = []
    for type, items in groupby(nominated, lambda n: n.oscar_type):
        items = list(items)
        if event.event_status == Event.STATUS_OPEN:
            shuffle(list(items))
        if items:
            categories.append({
                'name': items[0].get_category_name(),
                'nominated': items,
            })

    ctx = {
        'event': event,
        'categories': categories,
    }

    return render_to_response('event/event.html', ctx, context_instance=RequestContext(request))
Example #35
0
 def get_excluded_films(self):
     ids = set()
     ids.update(self.get_seen_films())
     if self.user.id:
         ids.update(Rating.get_user_ratings(self.user).keys())
         ids.update(Film._marked_film_ids(self.user))
     return ids
Example #36
0
    def get_films_to_rate(self, number_of_films=1, tag=None):
        key = cache.Key("vue_rater_user_films", self.user)
        user_films = cache.get(key)
        if user_films is None:
            user_films = vue.get_ordered_known_film_ids()
            if self.SHUFFLE_BLOCK_SIZE:
                shuffled = []
                while user_films:
                    block = user_films[:self.SHUFFLE_BLOCK_SIZE]
                    user_films = user_films[self.SHUFFLE_BLOCK_SIZE:]
                    random.shuffle(block)
                    shuffled.extend(block)
                user_films = shuffled
            cache.set(key, user_films)

        excluded = self.get_excluded_films()

        out = []
        for film_id in user_films:
            if film_id not in excluded:
                out.append(film_id)
            if len(out) >= number_of_films:
                break
        out = [Film.get(id=id) for id in out]
        return out
Example #37
0
def random_film_to_rate(request):
    """
        Widget for main page (for not logged in users)
        displaying a film to rate, selected from
        the list of 10 most popular films.
    """

    user = request.user
    
    if user.is_authenticated():
        film = Film.get_next_film_to_rate(user)
    else:
        key = cache.Key("popular_films_list")

        popular_films = cache.get(key)

        if popular_films is None:
            fhelper = FilmHelper()
            lang = getattr(settings, 'LANGUAGE_CODE', 'en')
            if lang == 'en':
                popular_films = fhelper.get_popular_films(exclude_nonEnglish=True)
            else:
                popular_films = fhelper.get_popular_films()
            cache.set(key, popular_films)

        film = popular_films and random.choice(popular_films) or None

    return {
        'film': film, 
    }
Example #38
0
 def film_id_to_imdb_code(cls, film_id):
     imdb_code = cls._imdb_code_cache.get(film_id)
     if imdb_code is None:
         film = Film.get(id=film_id)
         imdb_code = film and film.imdb_code
         if imdb_code:
             cls._imdb_code_cache[film_id] = imdb_code
     return imdb_code
Example #39
0
def next_film_to_rate_url(user):
    if settings.NEW_RATING_SYSTEM:
        films = BasketsRatingHelper.get_films_to_rate(user, 1)
        film = films and films[0] or None
    else:
        film = Film.get_next_film_to_rate(user)
    if film:
        return reverse('show_film', args=(film.permalink, ))
    else:
        return ''
Example #40
0
    def test_save_searchkeys(self):
        """
            Test saving searchkeys for localized film
        """
        self.film = Film()
        self.film.title = u"Olympia - Fest der Schönheit"
        self.film.type = Object.TYPE_FILM
        self.film.permalink = "olympia-2-teil-fest-der-schoenheit"
        self.film.release_year = 1938
        self.film.save()

        fetch_synopses_for_films([
            self.film,
        ], fetcher="tmdb")

        loc_film = FilmLocalized.objects.all()[0]

        self.assertEquals(loc_film.description is None, True)
        self.assertEquals(loc_film.fetched_description is None, False)
Example #41
0
    def initialize(self):
        self.clean_data()

        # set up users
        self.u1 = User.objects.create_user("michuk", "*****@*****.**", "secret")
        self.u1.save()
        self.u2 = User(username="******", email="*****@*****.**")
        self.u2.save()
        self.u3 = User(username="******", email="*****@*****.**")
        self.u3.save()
        self.u4 = User(username="******", email="*****@*****.**")
        self.u4.save()

        # set up film
        self.film = Film()
        self.film.title = "Battlefield Earth II"
        self.film.type = Object.TYPE_FILM
        self.film.permalink = "battlefirld-earth-ii"
        self.film.release_year = 2010
        self.film.save()
        self.film.save_tags("comedy")

        self.film1 = Film()
        self.film1.title = "Battlefield Earth III"
        self.film1.type = Object.TYPE_FILM
        self.film1.permalink = "battlefirld-earth-iii"
        self.film1.release_year = 2010
        self.film1.save()
        self.film1.save_tags("sci-fi")

        self.film2 = Film()
        self.film2.title = "Battlefield Earth IV"
        self.film2.type = Object.TYPE_FILM
        self.film2.permalink = "battlefirld-earth-iv"
        self.film2.release_year = 2010
        self.film2.save()
        self.film2.save_tags("horror")

        rating_helper.rate(self.u1, 8, self.film.id)
        rating_helper.rate(self.u1, 8, self.film1.id)
        rating_helper.rate(self.u1, 8, self.film2.id)
        rating_helper.rate(self.u2, 8, self.film2.id, _skip_activity=True)
Example #42
0
class RequestTestCase(TestCase):
    fixtures = ['test_users.json']
    def setUp(self):
        self.user = User.objects.get(username='******')
        self.user.set_password('bob')
        self.user.save()
        
        self.film = Film(type=1, permalink='przypadek', imdb_code=111, status=1, version=1, 
            release_year=1999, title='Przypadek', popularity=1, popularity_month=1)
        self.film.save()
        
        self.person = Person(type=2, permalink='jerzy-stuhr', imdb_code=112, status=1, version=1, 
            name='Jerzy', surname='Stuhr')
        self.person.save()

    
    def test_index(self):
        response = self.client.get('/')
        self.failUnlessEqual(response.status_code, 200)

    def test_film(self):
        response = self.client.get('/film/przypadek/')
        self.failUnlessEqual(response.status_code, 200)

    def test_film_authorized(self):
        self.client.login(username='******', password='******')
        response = self.client.get('/film/przypadek/')
        self.assertTrue(response.context['request'].user.is_authenticated())
        self.failUnlessEqual(response.status_code, 200)

    def test_person(self):
        response = self.client.get(self.person.get_absolute_url())
        self.assertEquals(response.status_code, 200)
    
    def test_person_authorized(self):
        self.client.login(username='******', password='******')
        response = self.client.get(self.person.get_absolute_url())
        self.assertEquals(response.status_code, 200)

    def tearDown(self):
        Person.objects.all().delete()
        Film.objects.all().delete()
    def setUp( self ):
        self.u1 = User.objects.create_user( "user1", "*****@*****.**", "user" )
        self.u2 = User.objects.create_user( "user2", "*****@*****.**", "user" )
        self.u3 = User.objects.create_user( "user3", "*****@*****.**", "user" )

        self.f1 = Film()
        self.f1.title = "Battlefield Earth"
        self.f1.type = Film.TYPE_FILM
        self.f1.permalink = "battlefirld-earth"
        self.f1.release_year = 208
        self.f1.production_country_list = "USA"
        self.f1.save()

        self.f2 = Film()
        self.f2.title = "Battlefield Earth II"
        self.f2.type = Film.TYPE_FILM
        self.f2.permalink = "battlefirld-earth-ii"
        self.f2.release_year = 2010
        self.f2.production_country_list = "USA"
        self.f2.save()
Example #44
0
    def setUp(self):
        self.u1 = User.objects.create_user("user1", "*****@*****.**", "user")
        self.u2 = User.objects.create_user("user2", "*****@*****.**", "user")
        self.u3 = User.objects.create_user("user3", "*****@*****.**", "user")

        self.f1 = Film()
        self.f1.title = "Battlefield Earth"
        self.f1.type = Film.TYPE_FILM
        self.f1.permalink = "battlefirld-earth"
        self.f1.release_year = 208
        self.f1.production_country_list = "USA"
        self.f1.save()

        self.f2 = Film()
        self.f2.title = "Battlefield Earth II"
        self.f2.type = Film.TYPE_FILM
        self.f2.permalink = "battlefirld-earth-ii"
        self.f2.release_year = 2010
        self.f2.production_country_list = "USA"
        self.f2.save()
Example #45
0
    def setUp(self):
        # set up users
        self.u1= User.objects.create_user('michuk', '*****@*****.**', 'secret')
        self.u1.save()

        # set up film
        self.film = Film()
        self.film.title = "Battlefield Earth II"
        self.film.type = Object.TYPE_FILM
        self.film.permalink = "battlefirld-earth-ii"
        self.film.release_year = 2010
        self.film.save(saved_by=2)
Example #46
0
 def setUp(self):
     self.user = User.objects.get(username='******')
     self.user.set_password('bob')
     self.user.save()
     
     self.film = Film(type=1, permalink='przypadek', imdb_code=111, status=1, version=1, 
         release_year=1999, title='Przypadek', popularity=1, popularity_month=1)
     self.film.save()
     
     self.person = Person(type=2, permalink='jerzy-stuhr', imdb_code=112, status=1, version=1, 
         name='Jerzy', surname='Stuhr')
     self.person.save()
Example #47
0
    def force_similar(self, recommendations, ratings):
        if self.limit is not None and self.limit < TOP_RECOMMENDATIONS_NR:
            similar_cnt = self.limit - (self.limit / 2)
        else:
            similar_cnt = 3

        similar_films = get_similar_films()
        similar_scores = {}

        for film_id, r in ratings.items():
            weight = r - 5
            similar = similar_films.get(film_id, set())

            for s_id in similar:
                similar_scores[s_id] = similar_scores.get(s_id, 0) + weight

        recommended_ids = set(k for k, v in recommendations)

        similar_scores = [(id,
                           score * 10 + self.recommendations_dict.get(id, 0))
                          for (id, score) in similar_scores.items()]

        top_similar = sorted(similar_scores, key=lambda i: i[1], reverse=True)

        if settings.VUE_DEBUG:
            self.similar_debug = [(Film.get(id=id), score)
                                  for (id, score) in top_similar
                                  if id in recommended_ids]
            logger.info(self.similar_debug)
        else:
            self.similar_debug = []

        top_similar = [(id, self.recommendations_dict.get(id, 0))
                       for (id, score) in top_similar
                       if score >= 0 and id in recommended_ids]
        top_similar = top_similar[:similar_cnt]

        self.similar = set(i[0] for i in top_similar)
        recommendations = [
            r for r in recommendations if r[0] not in self.similar
        ]

        if len(top_similar) < (self.limit or TOP_RECOMMENDATIONS_NR):
            # sort visible recommendations
            left = (self.limit or TOP_RECOMMENDATIONS_NR) - len(top_similar)
            top_similar.extend(recommendations[:left])
            del recommendations[:left]
            top_similar.sort(key=lambda r: r[1], reverse=True)

        top_similar.extend(recommendations)
        recommendations = top_similar

        return recommendations
Example #48
0
    def setUp( self ):

        # set up films
        self.film1 = Film()
        self.film1.title = "Film 1"
        self.film1.type = Object.TYPE_FILM
        self.film1.permalink = "film-1"
        self.film1.release_year = 2010
        self.film1.production_country_list = "USA"
        self.film1.save()
        self.film1.save_tags( "dramat komedia ", LANG="pl", saved_by=2 )
        self.film1.save_tags( "drama comedy wizards ", LANG="en", saved_by=2 )
Example #49
0
    def test_watching_notification(self):
        """
            Testing notifications for different types of activities (posts, short reviews and threads)
        """
        self.initialize()        
        activity = UserActivity.objects.get_for_object(self.post1)

        # create two comments for blog post by two different users 
        t = ThreadedComment(user=self.u2,
                                comment="This is a comment",
                                content_object=activity, 
                                type=Object.TYPE_COMMENT)
        t.save() 
        t = ThreadedComment(user=self.u3,
                                comment="This is also a comment",
                                content_object=activity, 
                                type=Object.TYPE_COMMENT)
        t.save() 
        
        # create film and a short review and a comment to it
        f1 = Film(type=1, permalink='przypadek', imdb_code=111, status=1, version=1, 
            release_year=1999, title='Przypadek', popularity=1, popularity_month=1)
        f1.save()
        sr = ShortReview(user=self.u1, review_text="This is a short review", object = f1, type=Object.TYPE_SHORT_REVIEW)
        sr.save()
        activity2 = UserActivity.objects.get_for_object(sr)
        t = ThreadedComment(user=self.u2,
                                comment="This is a comment to a short review",
                                content_object=activity2, 
                                type=Object.TYPE_COMMENT)
        t.save()

        # assert all is fine
        watching_objects = Watching.objects.all() 
        self.assertEquals(len(watching_objects), 5) # number of unique comments in threads should be equal to watching objects

        reply_notices = notification.Notice.objects.filter(notice_type__label='reply')

        # TODO: uncommend and fix in http://jira.filmaster.org/browse/FLM-1116
        self.assertEquals(len(reply_notices), 4) # number of notices
Example #50
0
    def setUp( self ):
        super( TaggingToolsTestCase, self ).setUp()
        # ..
        self.admin = User.objects.create_user( "admin", "*****@*****.**", "admin" )
        self.admin.is_superuser = True
        self.admin.save()

        self.client = Client( follow=True )

        self.rename_tag = registry.get_by_name( 'rename-tag' )
        self.alias_tag = registry.get_by_name( 'alias-tag' )

        self.film1 = Film()
        self.film1.title = "Battlefield Earth II"
        self.film1.type = Object.TYPE_FILM
        self.film1.permalink = "battlefirld-earth-ii"
        self.film1.release_year = 2010
        self.film1.production_country_list = "USA"
        self.film1.save()
        self.film1.save_tags( "komedia, kosmos, test" )

        self.film2 = Film()
        self.film2.title = "Battlefield Earth III"
        self.film2.type = Object.TYPE_FILM
        self.film2.permalink = "battlefirld-earth-iii"
        self.film2.release_year = 2011
        self.film2.production_country_list = "USA"
        self.film2.save()
        self.film2.save_tags( "komedia, kosmos, test" )

        self.film3 = Film()
        self.film3.title = "Battlefield Earth IV"
        self.film3.type = Object.TYPE_FILM
        self.film3.permalink = "battlefirld-earth-iv"
        self.film3.release_year = 2012
        self.film3.production_country_list = "Italy"
        self.film3.save()
        self.film3.save_tags( "komedia romantyczna, kosmos, test" )

        self.tag1 = Tag.objects.create( name='ciekawy' )
Example #51
0
def next_film_to_rate_url(context, user):
    request = context['request']
    if settings.NEW_RATING_SYSTEM:
        rater = rating_helper.get_rater(request)
        films = rater.get_films_to_rate(1)
        film = films and films[0] or None
    else:
        film = Film.get_next_film_to_rate(user)

    if film:
        return film.get_absolute_path()
    else:
        return ''
Example #52
0
def next_film_to_rate_url(context, user):
    request = context['request']
    if settings.NEW_RATING_SYSTEM:
        rater = rating_helper.get_rater(request)
        films = rater.get_films_to_rate(1)
        film = films and films[0] or None
    else:
        film = Film.get_next_film_to_rate(user)
    
    if film:
        return film.get_absolute_path()
    else:
        return ''
Example #53
0
    def test_get_user_seen_films(self):
        """ Tests storing rated and seen films in cache. """

        films = Film.objects.all()
        API_VERSION = "1.1"
        username = self.user.username
        put_url = "/api/" + API_VERSION + "/user/" + username + "/ratings/film/"

        # We rate movies and check if they were added to seen_films
        for film in films[:10]:
            film_put_url = put_url + film.permalink + "/" + str(Rating.TYPE_FILM) + "/"
            self.client.put(film_put_url, {'rating': 2})
            # We check if the film was added to user_seen_films
            seen_films = Film.get_user_seen_films(self.user)
            self.assertTrue(film.id in seen_films)

        # We mark movies as seen and check if they were added to seen_films
        for film in films[10:20]:
            film.mark_as_seen(self.user)
            # We check if the film was added to user_seen_films
            seen_films = Film.get_user_seen_films(self.user)
            self.assertTrue(film.id in seen_films)
Example #54
0
    def test_get_user_seen_films(self):
        """ Tests storing rated and seen films in cache. """

        films = Film.objects.all()
        API_VERSION = "1.1"
        username = self.user.username
        put_url = "/api/" + API_VERSION + "/user/" + username + "/ratings/film/"

        # We rate movies and check if they were added to seen_films
        for film in films[:10]:
            film_put_url = put_url + film.permalink + "/" + str(Rating.TYPE_FILM) + "/"
            self.client.put(film_put_url, {'rating': 2})
            # We check if the film was added to user_seen_films
            seen_films = Film.get_user_seen_films(self.user)
            self.assertTrue(film.id in seen_films)

        # We mark movies as seen and check if they were added to seen_films
        for film in films[10:20]:
            film.mark_as_seen(self.user)
            # We check if the film was added to user_seen_films
            seen_films = Film.get_user_seen_films(self.user)
            self.assertTrue(film.id in seen_films)
Example #55
0
class TmdbFetcherTestCase(TestCase):
    def test_fetcher(self):

        title = "The Terminator"
        url = "http://www.themoviedb.org/movie/218"
        year = 1984
        synopsis = "In the post-apocalyptic future, reigning tyrannical supercomputers teleport a cyborg assassin known as the \"Terminator\" back to 1984 to snuff Sarah Connor, whose unborn son is destined to lead insurgents against 21st century mechanical hegemony. Meanwhile, the human-resistance movement dispatches a lone warrior to safeguard Sarah. Can he stop the virtually indestructible killing machine?"

        fetcher = TmdbSynopsisFetcher()
        urls = fetcher.get_movie_urls(title, year)
        synopses = fetcher.get_movie_synopses(urls[0]['url'])

        self.assertEquals(synopses[0]['synopsis'], synopsis)
        self.assertEquals(synopses[0]['url'], url)
        self.assertEquals(synopses[0]['author'], "TMDb")
        self.assertEquals(synopses[0]['distributor'], False)
        self.assertEquals(synopses[0]['title'], title)

    def test_save_searchkeys(self):
        """
            Test saving searchkeys for localized film
        """
        self.film = Film()
        self.film.title = u"Olympia - Fest der Schönheit"
        self.film.type = Object.TYPE_FILM
        self.film.permalink = "olympia-2-teil-fest-der-schoenheit"
        self.film.release_year = 1938
        self.film.save()

        fetch_synopses_for_films([
            self.film,
        ], fetcher="tmdb")

        loc_film = FilmLocalized.objects.all()[0]

        self.assertEquals(loc_film.description is None, True)
        self.assertEquals(loc_film.fetched_description is None, False)
Example #56
0
def rate_next_film(request, tag=None):
    mark_prev_films_as_seen(request)

    if settings.NEW_RATING_SYSTEM:
        rater = rating_helper.get_rater(request)
        films = rater.get_films_to_rate(1, tag)
    else:
        films = Film.get_films_to_rate(user, 1, tag)

    return render(
        request, "movies/rating/single_film_special.html", {
            'film': films[0] if len(films) else None,
            'tag': tag,
            'rater': request.GET.get('rater'),
        })
Example #57
0
    def setUp(self):
        self.user = User.objects.get(username='******')
        self.user.set_password('bob')
        self.user.save()

        self.film = Film(type=1,
                         permalink='przypadek',
                         imdb_code=111,
                         status=1,
                         version=1,
                         release_year=1999,
                         title='Przypadek',
                         popularity=1,
                         popularity_month=1)
        self.film.save()

        self.person = Person(type=2,
                             permalink='jerzy-stuhr',
                             imdb_code=112,
                             status=1,
                             version=1,
                             name='Jerzy',
                             surname='Stuhr')
        self.person.save()
Example #58
0
    def testQueueCommand(self):
        f = Film( type=1, permalink='przypadek', imdb_code=111, status=1, version=1, \
                 release_year=1999, title='Przypadek' )
        f.save()
        f.delete()

        self.assertEqual(QueuedItem.objects.count(), 3)

        call_command('update_index_queue')

        self.assertEqual(QueuedItem.objects.count(), 1)