def test_save_multiple_movies_to_csv(self): movie2 = dict() movie2['title'] = 'Star Trek - Der Film' movie2['year'] = 1979 movie2['imdb'] = dict() movie2['imdb']['id'] = 'tt0079945' movie2['imdb']['url'] = 'http://www.imdb.com/title/tt0079945' movie2['trakt'] = dict() movie2['trakt']['id'] = '117' movie2['trakt'][ 'url'] = 'https://trakt.tv/movies/star-trek-the-motion-picture-1979' movie2['trakt']['my_rating'] = 8 movies = [self.movie, movie2] filename = os.path.join(os.path.join(TESTDATA_PATH, 'exports'), 'TEST_multiple_movies.csv') file_impex.save_movies_to_csv(movies, os.path.join(TESTDATA_PATH, 'exports'), 'TEST_multiple_movies.csv', 'trakt') with open(filename) as file: reader = csv.reader(file, delimiter=',') next(reader) # csv header row1 = next(reader) self.assertEqual(self.movie['title'], row1[5]) self.assertEqual(self.movie['year'], int(row1[11])) self.assertEqual(self.movie['imdb']['id'], row1[1]) self.assertEqual(self.movie['imdb']['url'], row1[15]) self.assertEqual(self.movie['trakt']['my_rating'], int(row1[8])) row2 = next(reader) self.assertEqual(movie2['title'], row2[5]) self.assertEqual(movie2['year'], int(row2[11])) self.assertEqual(movie2['imdb']['id'], row2[1]) self.assertEqual(movie2['imdb']['url'], row2[15]) self.assertEqual(movie2['trakt']['my_rating'], int(row2[8])) os.remove(filename)
def insert(self, movies, source): sys.stdout.write('\r===== %s: posting %i movies\r\n' % (self.site.site_name, len(movies))) sys.stdout.flush() save_movies_to_csv(movies, folder=self.exports_folder, filename=CSV_FILE_NAME, rating_source=source) self.site.browser.get( 'https://www.themoviedb.org/account/StegSchreck/import') time.sleep(1) self.site.browser.find_element_by_id('csv_file').send_keys( os.path.join(self.exports_folder, CSV_FILE_NAME)) time.sleep(1) self.site.browser.find_element_by_xpath( "//form[@name='import_csv']//input[@type='submit']").click() time.sleep(3) sys.stdout.write( '\r\n===== %s: The file with %i movies was uploaded and will be process by the servers. ' 'You may check your TMDB account later. ' 'Note, that this will NOT overwrite any existing ratings.\r\n' % (self.site.site_name, len(movies))) sys.stdout.flush() self.site.kill_browser()
def insert(self, movies, source): sys.stdout.write( '\r===== {site_displayname}: posting {movies_count} movies\r\n'. format(site_displayname=self.site.site_displayname, movies_count=len(movies))) sys.stdout.flush() save_movies_to_csv(movies, folder=self.exports_folder, filename=self.csv_filename, rating_source=source) self.pre_upload_action() self.upload_csv_file() self.post_upload_action() sys.stdout.write( '\r\n===== {site_displayname}: The file with {movies_count} movies was uploaded ' 'and will be process by the servers. ' 'You may check your {site_name} account later.\r\n' 'Note, that this might not overwrite any existing ratings.\r\n'. format(site_displayname=self.site.site_displayname, movies_count=len(movies), site_name=self.site.site_name)) sys.stdout.flush() self.site.browser_handler.kill()
def insert(self, movies, source): sys.stdout.write('\r===== %s: posting %i movies\r\n' % (self.site.site_name, len(movies))) sys.stdout.flush() save_movies_to_csv(movies, folder=self.exports_folder, filename=CSV_FILE_NAME, rating_source=source) self.site.browser.get( 'https://movielens.org/profile/settings/import-export') time.sleep(1) self.site.browser.find_element_by_id('infile').send_keys( os.path.join(self.exports_folder, CSV_FILE_NAME)) time.sleep(1) self.site.browser.find_element_by_xpath( "//form[@name='importForm']//button[@type='submit']").click() time.sleep(3) sys.stdout.write('\r\n===== %s: The file with %i movies was uploaded ' 'and will be process by the servers. ' 'You may check your Movielens account later.\r\n' % (self.site.site_name, len(movies))) sys.stdout.flush() self.site.kill_browser()
def test_save_single_movie_to_csv(self): movies = [self.movie] filename = os.path.join(os.path.join(TESTDATA_PATH, 'exports'), 'TEST_single_movie.csv') file_impex.save_movies_to_csv(movies, os.path.join(TESTDATA_PATH, 'exports'), 'TEST_single_movie.csv', 'imdb') with open(filename) as file: reader = csv.reader(file, delimiter=',') next(reader) # csv header row = next(reader) self.assertEqual(self.movie['title'], row[5]) self.assertEqual(self.movie['year'], int(row[11])) self.assertEqual(self.movie['imdb']['id'], row[1]) self.assertEqual(self.movie['imdb']['url'], row[15]) self.assertEqual(self.movie['imdb']['my_rating'], int(row[8])) os.remove(filename)
def test_save_multiple_movies_to_csv(self): movie2 = dict() movie2["title"] = "Star Trek - Der Film" movie2["year"] = 1979 movie2["imdb"] = dict() movie2["imdb"]["id"] = "tt0079945" movie2["imdb"]["url"] = "https://www.imdb.com/title/tt0079945" movie2["trakt"] = dict() movie2["trakt"]["id"] = "117" movie2["trakt"][ "url"] = "https://trakt.tv/movies/star-trek-the-motion-picture-1979" movie2["trakt"]["my_rating"] = 8 movies = [self.movie, movie2] filename = os.path.join(os.path.join(TESTDATA_PATH, "exports"), "TEST_multiple_movies.csv") file_impex.save_movies_to_csv( movies, os.path.join(TESTDATA_PATH, "exports"), "TEST_multiple_movies.csv", "trakt", ) with open(filename) as file: reader = csv.reader(file, delimiter=",") headers = next(reader) # csv header row1 = next(reader) self.assertEqual(self.movie["title"], row1[headers.index("Title")]) self.assertEqual(self.movie["year"], int(row1[headers.index("Year")])) self.assertEqual(self.movie["imdb"]["id"], row1[headers.index("Const")]) self.assertEqual(self.movie["imdb"]["url"], row1[headers.index("URL")]) self.assertEqual( self.movie["trakt"]["my_rating"], int(row1[headers.index("Your Rating")]), ) row2 = next(reader) self.assertEqual(movie2["title"], row2[headers.index("Title")]) self.assertEqual(movie2["year"], int(row2[headers.index("Year")])) self.assertEqual(movie2["imdb"]["id"], row2[headers.index("Const")]) self.assertEqual(movie2["imdb"]["url"], row2[headers.index("URL")]) self.assertEqual(movie2["trakt"]["my_rating"], int(row2[headers.index("Your Rating")])) os.remove(filename)
def insert(self, movies, source): sys.stdout.write('\r===== %s: posting %i movies\r\n' % (self.site.site_displayname, len(movies))) sys.stdout.flush() save_movies_to_csv(movies, folder=self.exports_folder, filename=CSV_FILE_NAME, rating_source=source) self.upload_csv_file(len(movies)) sys.stdout.write( '\r\n===== %s: The file with %i movies was uploaded ' 'and successfully processed by the servers. ' 'You may check your %s account later.\r\n' % (self.site.site_displayname, len(movies), self.site.site_name)) sys.stdout.flush() self.site.kill_browser()
def insert(self, movies, source): sys.stdout.write('\r===== %s: posting %i movies\r\n' % (self.site.site_displayname, len(movies))) sys.stdout.flush() save_movies_to_csv(movies, folder=self.exports_folder, filename=self.csv_filename, rating_source=source) self.upload_csv_file() sys.stdout.write( '\r\n===== %s: The file with %i movies was uploaded ' 'and will be process by the servers. ' 'You may check your %s account later.\r\n' 'Note, that this might not overwrite any existing ratings.\r\n' % (self.site.site_displayname, len(movies), self.site.site_name)) sys.stdout.flush() self.site.kill_browser()
def test_save_single_movie_to_csv(self): movies = [self.movie] filename = os.path.join(os.path.join(TESTDATA_PATH, 'exports'), 'TEST_single_movie.csv') file_impex.save_movies_to_csv(movies, os.path.join(TESTDATA_PATH, 'exports'), 'TEST_single_movie.csv', 'imdb') with open(filename) as file: reader = csv.reader(file, delimiter=',') headers = next(reader) row = next(reader) self.assertEqual(self.movie['title'], row[headers.index("Title")]) self.assertEqual(self.movie['year'], int(row[headers.index("Year")])) self.assertEqual(self.movie['imdb']['id'], row[headers.index("Const")]) self.assertEqual(self.movie['imdb']['url'], row[headers.index("URL")]) self.assertEqual(self.movie['imdb']['my_rating'], int(row[headers.index("Your Rating")])) os.remove(filename)
def insert(self, movies, source): sys.stdout.write( '\r===== {site_displayname}: posting {movies_count} movies\r\n'. format(site_displayname=self.site.site_displayname, movies_count=len(movies))) sys.stdout.flush() if self.site.site_name.lower() == 'movielens': movies = [movie for movie in movies if 'imdb' in movie] if len(movies) == 0: command_line.warn( 'There are no movies with an IMDB id in the parsed data.' 'As the target site is looking for this id to match the data, ' 'there is nothing left to do.') command_line.info( 'A workaround would be to upload the data to a third site, which knows the IMDB id, ' 'and parse again from there.') self.site.browser_handler.kill() save_movies_to_csv(movies, folder=self.exports_folder, filename=self.csv_filename, rating_source=source) self.pre_upload_action() self.upload_csv_file() self.post_upload_action() sys.stdout.write( '\r\n===== {site_displayname}: The file with {movies_count} movies was uploaded ' 'and will be process by the servers. ' 'You may check your {site_name} account later.\r\n' 'Note, that this might not overwrite any existing ratings.\r\n'. format(site_displayname=self.site.site_displayname, movies_count=len(movies), site_name=self.site.site_name)) sys.stdout.flush() self.site.browser_handler.kill()
def insert(self, movies, source): sys.stdout.write( f"\r===== {self.site.site_displayname}: posting {len(movies)} movies\r\n" ) sys.stdout.flush() save_movies_to_csv( movies, folder=self.exports_folder, filename=CSV_FILE_NAME, rating_source=source, ) self.upload_csv_file(len(movies)) sys.stdout.write( f"\r\n===== {self.site.site_displayname}: The file with {len(movies)} movies was uploaded " "and successfully processed by the servers. " f"You may check your {self.site.site_name} account later.\r\n" ) sys.stdout.flush() self.site.browser_handler.kill()
def insert(self, movies, source): sys.stdout.write( f"\r===== {self.site.site_displayname}: posting {len(movies)} movies\r\n" ) sys.stdout.flush() if self.site.site_name.lower() == "movielens": movies = [movie for movie in movies if "imdb" in movie] if len(movies) == 0: self.site.browser_handler.kill() raise NoMoviesForInsertion( "There are no movies with an IMDB id in the parsed data. " "As the target site is looking for this id to match the data, " "there is nothing left to do. " "A workaround would be to upload the data to a third site, " "which knows the IMDB id, and parse again from there." ) save_movies_to_csv( movies, folder=self.exports_folder, filename=self.csv_filename, rating_source=source, ) self.pre_upload_action() self.upload_csv_file() self.post_upload_action() sys.stdout.write( f"\r\n===== {self.site.site_displayname}: The file with {len(movies)} movies was uploaded " "and will be process by the servers. " f"You may check your {self.site.site_name} account later.\r\n" "Note, that this might not overwrite any existing ratings.\r\n" ) sys.stdout.flush() self.site.browser_handler.kill()
def test_save_single_movie_to_csv(self): movies = [self.movie] filename = os.path.join(os.path.join(TESTDATA_PATH, "exports"), "TEST_single_movie.csv") file_impex.save_movies_to_csv( movies, os.path.join(TESTDATA_PATH, "exports"), "TEST_single_movie.csv", "imdb", ) with open(filename) as file: reader = csv.reader(file, delimiter=",") headers = next(reader) row = next(reader) self.assertEqual(self.movie["title"], row[headers.index("Title")]) self.assertEqual(self.movie["year"], int(row[headers.index("Year")])) self.assertEqual(self.movie["imdb"]["id"], row[headers.index("Const")]) self.assertEqual(self.movie["imdb"]["url"], row[headers.index("URL")]) self.assertEqual(self.movie["imdb"]["my_rating"], int(row[headers.index("Your Rating")])) os.remove(filename)