示例#1
0
    def test_tmdb_status(self):
        """
           Test tmdb_status
        """
        self.initialize()
        # take all not imported movies without posters from db
        films = Film.objects.filter(image="", tmdb_import_status=Film.NOT_IMPORTED)
        # there should be only 1 movie
        self.assertEqual(len(films), 1)
        #try to fetch posters
        for film in films:
            # check if there is no poster
            self.assertEqual(film.image is not None, True)
            # check tmdb_import_status, should be NOT_IMPORTED
            self.assertEqual(film.tmdb_import_status, Film.NOT_IMPORTED)
            # fetch poster for film
            tmdb_movie = fetch_film_by_id(film)
            film.tmdb_import_status = Film.IMPORTED
            film.save()
            self.assertEqual(tmdb_movie is not None, True)
            result = save_tmdb_poster(film, tmdb_movie)
            self.assertEqual(result, True)

        film = Film.objects.get(title="The Terminator")
        # check tmdb_status should be IMPORTED
        self.assertEqual(film.tmdb_import_status, Film.IMPORTED)

        # there are no other movies without posters in db
        films = Film.objects.filter(tmdb_import_status=Film.NOT_IMPORTED)
        self.assertEqual(len(films), 0)
示例#2
0
    def test_fetch_by_title(self):
        """
           Test fetching by title
        """
        self.initialize()

        films = Film.objects.filter(image="", tmdb_import_status=Film.NOT_IMPORTED)
        for film in films:
            tmdb_movie = fetch_film_by_title(film)
            self.assertEqual(tmdb_movie is not None, True)
            result = save_tmdb_poster(film, tmdb_movie)
            self.assertEqual(result, True)

        film = Film.objects.get(title="The Terminator")
        self.assertEqual(film.image is not None, True)
    def handle(self, *args, **opts):
        self.opts = opts
        print opts
        persons = Person.objects.all()
        if not opts.get('all'):
            query = Q(tmdb_import_status=Person.NOT_IMPORTED) | \
                    Q(tmdb_import_status__isnull=True)
            persons = persons.filter(query)
        persons = persons.extra(select={'fieldsum': 'actor_popularity + director_popularity'},
                order_by=['-fieldsum',])

        tmdb_persos = None
        for person in persons:
            print "Looking for %s in tmdb" % person
            if opts.get('name'):
                try:
                    tmdb_person = fetch_person_by_name(person)
                except Exception, e:
                    print "Something went wrong for %s" % person
                    person.tmdb_import_status = Person.IMPORT_FAILED_OTHER_REASON
                    person.save()
                    print e
                    pass

            if tmdb_person:
                print "Found person with the same name and surname and birth year in tmdb"
                status = save_tmdb_poster(person, tmdb_person)
                if status:
                    print "Poster for %s saved" % person
                    person.tmdb_import_status = Person.IMPORTED
                    person.save()
                else:
                    person.tmdb_import_status = Person.IMPORT_FAILED_OTHER_REASON
                    person.save()
            else:
                person.tmdb_import_status = Person.IMPORT_FAILED_NO_OBJECT_IN_DB
                person.save()
                print "No entry in tmdb for person %s" % person