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)
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