class TestCache(unittest.TestCase): def setUp(self): self.imdb = Imdb() def tearDown(self): shutil.rmtree(self.imdb.cache_dir, ignore_errors=True) def _get_cache_size(self): """ Returns a count of the items in the cache """ cache = os.path.exists(self.imdb.cache_dir) if not cache: return 0 _, _, cache_files = next(os.walk(self.imdb.cache_dir)) return len(cache_files) def test_cache_populated(self): """ Tests the cache is populated correctly """ self.imdb = Imdb({'cache': True, 'cache_dir': '/tmp/imdbpie-test'}) self.assertEqual(self._get_cache_size(), 0) movie = self.imdb.find_movie_by_id("tt0382932") # Make a 2nd call to ensure no duplicate cache items created self.imdb.find_movie_by_id("tt0382932") # find makes 2 api calls self.assertEqual(self._get_cache_size(), 2) self.assertEqual(movie.title, 'Ratatouille') def test_cache_not_populated_when_disabled(self): """ Tests the cache is not populated when disabled (default) """ self.assertEqual(self._get_cache_size(), 0) self.imdb.find_movie_by_id("tt0382932") self.assertEqual(self._get_cache_size(), 0)
def imdb(self): """Get IMDb data for release, set self.imdb_id to override auto match from movie title + year""" from imdbpie import Imdb imdb = Imdb() if not self.movie_release: return False imdb_id = None if hasattr(self, "imdb_id"): imdb_id = self.imdb_id # Find IMDb match by title and check if year is a match if not imdb_id: for imdb_match in imdb.find_by_title(self.movie_title): if int(imdb_match.get("year")) == self.movie_year: imdb_id = imdb_match.get("imdb_id") break # No IMDb match could be found from title + year if not imdb_id: return False return imdb.find_movie_by_id(imdb_id)
def net_search(name): #input=movie name #output=movie id from imdb imdb = Imdb({'anonymize': False}) #~ movie = imdb.find_movie_by_id("tt0382932") #~ print movie.title if len(name) > 0: details = imdb.find_by_title(name) if len(details) > 0: #~ return imdb.find_movie_by_id(details[0]['imdb_id']) imdb_id = details[0]['imdb_id'] #~ print imdb_id movie = imdb.find_movie_by_id(imdb_id) return movie else: #~ return NULL return -1
def net_search(name): #input=movie name #output=movie id from imdb imdb = Imdb({'anonymize': False}) #~ movie = imdb.find_movie_by_id("tt0382932") #~ print movie.title if len(name)>0: details=imdb.find_by_title(name) if len(details)>0: #~ return imdb.find_movie_by_id(details[0]['imdb_id']) imdb_id=details[0]['imdb_id'] #~ print imdb_id movie=imdb.find_movie_by_id(imdb_id) return movie else: #~ return NULL return -1
from imdbpie import Imdb import unittest imdb = Imdb({'anonymize': False}) movie = imdb.find_movie_by_id("tt0382932") class TestTrailer(unittest.TestCase): def test_trailer_url(self): self.assertIsNotNone(movie.trailers) if __name__ == '__main__': unittest.main()
self.assertEqual( images[0].url, 'http://ia.media-imdb.com/images/M/MV5BOTAxNzI0ND' 'E1NF5BMl5BanBnXkFtZTcwNjczMTk2Mw@@._V1_.jpg') if __name__ == '__main__': unittest.main() ########NEW FILE######## __FILENAME__ = movie_test from imdbpie import Imdb import unittest import re imdb = Imdb({'anonymize': False}) movie = imdb.find_movie_by_id("tt0382932") class TestTitle(unittest.TestCase): @staticmethod def valid_poster(poster_url): match = re.findall(r'http://ia.media-imdb.com/images/.*/', poster_url)[0] if match: return True else: return False def test_title(self): self.assertEqual(movie.title, 'Ratatouille')
from imdbpie import Imdb import re imdb = Imdb({'anonymize' : False}) movie = imdb.find_movie_by_id("tt1210166") def run_tests(): global imdb print('have a trailer_url:') match = re.findall(r'http://ia.media-imdb.com/images/.*/', movie.trailer_url)[0] if match: print('passed') if __name__ == '__main__': run_tests()
from imdbpie import Imdb import re imdb = Imdb({'anonymize': False}) movie = imdb.find_movie_by_id("tt0382932") def run_tests(): global imdb print('have a title:') if movie.title == 'Ratatouille': print('passed') print('have an imdb id:') if movie.imdb_id == 'tt0382932': print('passed') print('have a tagline:') if movie.tagline == 'Dinner is served... Summer 2007': print('passed') print('have a plot:') if movie.plot == "Remy is a young rat in the French countryside who arrives in Paris, only to find out that his cooking idol is dead. When he makes an unusual alliance with a restaurant's new garbage boy, the culinary and personal adventures begin despite Remy's family's skepticism and the rat-hating world of humans.": print('passed') print('have a runtime:') if movie.runtime == '111 min': print('passed') print('have a rating:')
from imdbpie import Imdb imdb = Imdb({'anonymize': False, 'locale': 'en_US', 'exclude_episodes': False}) movie = imdb.find_movie_by_id('tt0705926') def run_tests(): """ Overall tests not using unittests for a simple visual results overview """ print((movie.title)) print(('year', movie.year)) print(('type', movie.type)) print(('tagline', movie.tagline)) print(('rating', movie.rating)) print(('certification', movie.certification)) print(('genres', movie.genres)) print(('plot', movie.plot)) print(('runtime', movie.runtime)) print(('writers summary', movie.writers_summary)) print(('directors summary', movie.directors_summary)) print(('creators', movie.creators)) print(('cast summary', movie.cast_summary)) print(('full credits', movie.credits)) if __name__ == '__main__': run_tests()
#https://github.com/richardasaurus/imdb-pie from imdbpie import Imdb imdb = Imdb() # Creating an instance with caching enabled # Note that the cached responses expire every 2 hours or so. # The API response itself dictates the expiry time) imdb = Imdb({'cache': True}) movie = imdb.find_movie_by_id("tt1210166") print movie
from imdbpie import Imdb imdb = Imdb({'anonymize': False}) def run_tests(): print(movie.title) print('year', movie.year) print('type', movie.type) print('tagline', movie.tagline) print('rating', movie.rating) print('genres', movie.genres) print('plot', movie.plot) print('runtime', movie.runtime) print('writers', movie.writers) print('directors', movie.directors) print('creators', movie.creators) print('cast summary', movie.cast_summary) print('full credits', movie.credits) if __name__ == '__main__': movie = imdb.find_movie_by_id('tt0111161') run_tests()
from imdbpie import Imdb imdb = Imdb({'anonymize': False, 'locale': 'en_US', 'exclude_episodes': False}) def run_tests(): """ Overall tests not using unittests for a simple visual results overview """ print((movie.title)) print(('year', movie.year)) print(('type', movie.type)) print(('tagline', movie.tagline)) print(('rating', movie.rating)) print(('certification', movie.certification)) print(('genres', movie.genres)) print(('plot', movie.plot)) print(('runtime', movie.runtime)) print(('writers', movie.writers)) print(('directors', movie.directors)) print(('creators', movie.creators)) print(('cast summary', movie.cast_summary)) print(('full credits', movie.credits)) if __name__ == '__main__': movie = imdb.find_movie_by_id('tt0705926') run_tests()
from imdbpie import Imdb imdb = Imdb({"anonymize": False, "locale": "en_US", "exclude_episodes": False}) def run_tests(): """ Overall tests not using unittests for a simple visual results overview """ print((movie.title)) print(("year", movie.year)) print(("type", movie.type)) print(("tagline", movie.tagline)) print(("rating", movie.rating)) print(("certification", movie.certification)) print(("genres", movie.genres)) print(("plot", movie.plot)) print(("runtime", movie.runtime)) print(("writers summary", movie.writers_summary)) print(("directors summary", movie.directors_summary)) print(("creators", movie.creators)) print(("cast summary", movie.cast_summary)) print(("full credits", movie.credits)) if __name__ == "__main__": movie = imdb.find_movie_by_id("tt0705926") run_tests()