def test_same_show_name_on_each_file(self): show_source_dir = 'kung fo season 1 (1080p bd 123)/' destination_show_path = self._SHOW_DESTINATION_DIRECTORY + '/Kung Fo/Season 1/' file_name_1 = 'Kung fo S01E01 Completely Strange (1080p) (C).mkv' file_name_2 = '(C) for Audio Commentary.txt' file_name_3 = 'Kung fo S01E02 Somewhat Stranger (1080p) (C).mkv' file_handler.create_dir(destination_show_path) self._createSourceFile(show_source_dir + file_name_1) self._createSourceFile(show_source_dir + file_name_2) self._createSourceFile(show_source_dir + file_name_3) mover.move_media_by_path(self._SOURCE_DIRECTORY + show_source_dir, self._SHOW_DESTINATION_DIRECTORY, self._MOVIE_DESTINATION_DIRECTORY) self._assert_file_moved(show_source_dir + file_name_1, destination_show_path + file_name_1) self._assert_file_moved( show_source_dir + file_name_2, self._SHOW_DESTINATION_DIRECTORY + '/Kung Fo/' + file_name_2) self._assert_file_moved(show_source_dir + file_name_3, destination_show_path + file_name_3)
def test_moving_movie_in_directory(self): folder_path = self._SOURCE_DIRECTORY + '007 Going For Old Time HD-TS x264-CPG' file_handler.create_dir(folder_path) file_path = folder_path + '/007 Going For Old Time HD-TS x264-CPG.mp4' file_handler.create_file(file_path) mover.move_media_by_path(folder_path, self._SHOW_DESTINATION_DIRECTORY, self._MOVIE_DESTINATION_DIRECTORY) file_destination_path = self._MOVIE_DESTINATION_DIRECTORY + '007 Going For Old Time HD-TS x264-CPG/007 Going For Old Time HD-TS x264-CPG.mp4' self._assert_file_moved(file_path, file_destination_path)
def __test_matching_file_in_folder(self): folder_path = self.__SOURCE_DIRECTORY_PATH + '/hey.arnold.S09E01.SOMETHING.something-something' file_handler.create_dir(folder_path) search_for = 'hey arnold' file_paths = file_matcher.search_files(search_for, self.__SOURCE_DIRECTORY_PATH) self.assertEqual(1, len(file_paths)) self.assertEqual(folder_path, file_paths[0])
def test_moving_movie_with_image(self): folder_path = self._SOURCE_DIRECTORY + 'Konstig (2017) [1080p] [JKL.KL]' file_handler.create_dir(folder_path) source_file_path = folder_path + '/WWW.YTS.AG.jpg' file_handler.create_file(source_file_path) mover.move_media_by_path(folder_path, self._SHOW_DESTINATION_DIRECTORY, self._MOVIE_DESTINATION_DIRECTORY) file_destination_path = self._MOVIE_DESTINATION_DIRECTORY + '/Konstig (2017) [1080p] [JKL.KL]/WWW.YTS.AG.jpg' self._assert_file_moved(source_file_path, file_destination_path)
def test_moving_episodes_by_name_in_directory(self): folder_path = self._SOURCE_DIRECTORY + '/Cool.And.Welcome.To.Earth.S01.Season.1.720p.5.1Ch.Web-DL.ReEnc-DeeJayAhmed' file_handler.create_dir(folder_path) file_path_1 = folder_path + '/Cool.And.Welcome.To.Earth.S01E13.720p.5.1Ch.Web-DL.ReEnc-DeeJayAhmed.mkv' file_handler.create_file(file_path_1) mover.move_media_by_name('Cool And Welcome To Earth', self._SOURCE_DIRECTORY, self._SHOW_DESTINATION_DIRECTORY, self._MOVIE_DESTINATION_DIRECTORY) self._assert_file_moved( file_path_1, self._SHOW_DESTINATION_DIRECTORY + 'Cool And Welcome To Earth/Season 1/Cool.And.Welcome.To.Earth.S01E13.720p.5.1Ch.Web-DL.ReEnc-DeeJayAhmed.mkv' )
def test_movie_destination_no_slash_in_path(self): dir_name = 'Tah Felling Out Of hope In Valley (2019) [Converted] [movie-test-no-path]/' file_handler.create_dir(self._SOURCE_DIRECTORY + dir_name) movie_file = 'Tah.Fellingr Out Of hope In Valley.2019.1080p.Converted-[movie-test-no-path].mp4' file_handler.create_file(self._SOURCE_DIRECTORY + dir_name + movie_file) mover.move_media_by_path( self._SOURCE_DIRECTORY + dir_name, self._SHOW_DESTINATION_DIRECTORY, self._MOVIE_DESTINATION_DIRECTORY[:-1] ) self._assert_file_moved( self._SOURCE_DIRECTORY + dir_name + movie_file, self._MOVIE_DESTINATION_DIRECTORY + dir_name + movie_file )
def test_moving_episodes_by_file_in_directory(self): folder_path = self._SOURCE_DIRECTORY + 'hey.arnold.season1.720p.webdl' file_handler.create_dir(folder_path) source_file_path_1 = folder_path + '/hey.arnold.S09E01.SOMETHING.something-something' file_handler.create_file(source_file_path_1) source_file_path_2 = folder_path + '/hey.arnold.S09E02.SOMETHING.something-something.mp4' file_handler.create_file(source_file_path_2) mover.move_media_by_path(folder_path, self._SHOW_DESTINATION_DIRECTORY, self._MOVIE_DESTINATION_DIRECTORY) file_destination_path = self._SHOW_DESTINATION_DIRECTORY + '/hey arnold/Season 9/hey.arnold.S09E01.SOMETHING.something-something' self._assert_file_moved(source_file_path_1, file_destination_path) file_destination_path = self._SHOW_DESTINATION_DIRECTORY + '/hey arnold/Season 9/hey.arnold.S09E02.SOMETHING.something-something.mp4' self._assert_file_moved(source_file_path_2, file_destination_path)
def test_moving_movies_by_name(self): file_1_folder_path = self._SOURCE_DIRECTORY + '/201 Coolings 1999.DVDRIP.Xvid.NVesub-' file_handler.create_dir(file_1_folder_path) file_1_path = file_1_folder_path + '/201 Coolings 1999.___RIP.Xvid.NVesub-123.mp4' file_handler.create_file(file_1_path) file_2_path = self._SOURCE_DIRECTORY + '/201 Coolings 200.DADRAP.NVesub.mp4' file_handler.create_file(file_2_path) mover.move_media_by_name( '201 Coolings', self._SOURCE_DIRECTORY, self._SHOW_DESTINATION_DIRECTORY, self._MOVIE_DESTINATION_DIRECTORY ) file_destination_path = self._MOVIE_DESTINATION_DIRECTORY + '/201 Coolings 1999.DVDRIP.Xvid.NVesub-/201 Coolings 1999.___RIP.Xvid.NVesub-123.mp4' self._assert_file_moved(file_1_folder_path, file_destination_path) file_destination_path = self._MOVIE_DESTINATION_DIRECTORY + '/201 Coolings 200.DADRAP.NVesub/201 Coolings 200.DADRAP.NVesub.mp4' self._assert_file_moved(file_2_path, file_destination_path)
def setUp(self): self._create_test_dirs() file_handler.create_file(self._SOURCE_DIRECTORY + '/' + self.__TV_SHOW_FILE_NAME_1) file_handler.create_file(self._SOURCE_DIRECTORY + '/' + self.__TV_SHOW_FILE_NAME_2) file_handler.create_file(self._SOURCE_DIRECTORY + '/' + self.__TV_SHOW_FILE_NAME_3) file_handler.create_file(self._SOURCE_DIRECTORY + '/' + self.__MOVIE_FILE_NAME_1) file_handler.create_file(self._SOURCE_DIRECTORY + '/' + self.__MOVIE_FILE_NAME_2) file_handler.create_dir(self._SHOW_DESTINATION_DIRECTORY + 'Old Stuff/Season 2/') file_handler.create_file(self._SHOW_DESTINATION_DIRECTORY + 'Old Stuff/Season 2/' + self.__TV_SHOW_FILE_NAME_3_ORIGINAL) file_handler.create_file(self._SOURCE_DIRECTORY + '/' + self.__TV_SHOW_FILE_NAME_3_PROPER) parent_path = self._SOURCE_DIRECTORY + '/' + self.__TV_SHOW_FILE_NAME_4_PARENT_FOLDER file_handler.create_dir(parent_path) file_handler.create_file(parent_path + '/' + self.__TV_SHOW_FILE_NAME_4) parent_path = self._SOURCE_DIRECTORY + '/' + self.__TV_SHOW_FILE_NAME_5_PARENT_FOLDER file_handler.create_dir(parent_path) file_handler.create_file(parent_path + '/' + self.__TV_SHOW_FILE_NAME_5)
def test_screens_images_moved_correctly(self): show_name = 'what happens in the sun/' show_source_dir = '/What Happens in the Sun S01E01 1080p WEB H264' source_show_dir = self._SOURCE_DIRECTORY + show_source_dir file_handler.create_dir(source_show_dir) episode = '/what.happens.in.the.sun.s01e01.1080p.web.h264.mkv' file_handler.create_file(source_show_dir + episode) screen_dir = '/Screens' file_handler.create_dir(source_show_dir + screen_dir) screen_file = '/screen0001.jpg' file_handler.create_file(source_show_dir + screen_dir + screen_file) mover.move_media_by_path(source_show_dir, self._SHOW_DESTINATION_DIRECTORY, self._MOVIE_DESTINATION_DIRECTORY) self._assert_file_moved( source_show_dir + screen_dir + screen_file, self._SHOW_DESTINATION_DIRECTORY + show_name + screen_file) self.__validate_episodes_season_1([episode], show_name)
def test_move_shows_into_existing_season_directory(self): file_handler.create_dir(self._SHOW_DESTINATION_DIRECTORY + '/Kontroll US/Season 7/') tv_show_file_name = 'kontroll.US.S07E02.720p.AM.SOMETING-OTHER-DEMINSION[aaa]' file_source_path = self._SOURCE_DIRECTORY + '/' + tv_show_file_name file_handler.create_file(file_source_path) # move by name mover.move_media_by_name('kontroll', self._SOURCE_DIRECTORY, self._SHOW_DESTINATION_DIRECTORY, self._MOVIE_DESTINATION_DIRECTORY) file_destination_path = self._SHOW_DESTINATION_DIRECTORY + '/Kontroll US/Season 7/' + tv_show_file_name self._assert_file_moved(file_source_path, file_destination_path) # move by file file_handler.delete_file(file_destination_path) file_handler.create_file(file_source_path) mover.move_media_by_path(file_source_path, self._SHOW_DESTINATION_DIRECTORY, self._MOVIE_DESTINATION_DIRECTORY) self._assert_file_moved(file_source_path, file_destination_path) # Test with two letter word in the middle of file name that should not be stripped when matching file_handler.create_dir(self._SHOW_DESTINATION_DIRECTORY + '/Cool And Welcome To Earth/Season 2/') tv_show_file_name = 'Cool.And.Welcome.To.Earth.S02E02.The.Boo.720p.KOL-OL.A300.MP#.mp4' file_source_path = self._SOURCE_DIRECTORY + '/' + tv_show_file_name file_handler.create_file(file_source_path) mover.move_media_by_name('Cool And Welcome To Earth', self._SOURCE_DIRECTORY, self._SHOW_DESTINATION_DIRECTORY, self._MOVIE_DESTINATION_DIRECTORY) file_destination_path = self._SHOW_DESTINATION_DIRECTORY + '/Cool And Welcome To Earth/Season 2/' + tv_show_file_name self._assert_file_moved(file_source_path, file_destination_path)
def test_multiple_matches(self): file_handler.create_dir(f'{self._SHOW_DESTINATION_DIRECTORY}mr test') file_handler.create_dir( f'{self._SHOW_DESTINATION_DIRECTORY}Test Test and Test') episode_name = 'Mr.Test.S07E01.REPACK.a111-AAA[a]' file_handler.create_dir(f'{self._SOURCE_DIRECTORY}{episode_name}') file_path = f'{self._SOURCE_DIRECTORY}{episode_name}/{episode_name}.mp4' file_handler.create_file(file_path) mover.move_media_by_path(self._SOURCE_DIRECTORY + episode_name, self._SHOW_DESTINATION_DIRECTORY, self._MOVIE_DESTINATION_DIRECTORY) self._assert_file_moved( file_path, f'{self._SHOW_DESTINATION_DIRECTORY}mr test/Season 7/{episode_name}.mp4' )
def test_moving_movie_with_extra_dir(self): movie_dir = 'Movie.The.Movie.1234' file_handler.create_dir(self._SOURCE_DIRECTORY + movie_dir) movie_file = movie_dir + '/Movie.The.Movie.1234.mkv' file_handler.create_file(self._SOURCE_DIRECTORY + movie_file) extras_dir = movie_dir + '/Extras' file_handler.create_dir(self._SOURCE_DIRECTORY + extras_dir) extras_file1 = extras_dir + '/Movie.The.Movie.1234.Theatrical.Trailer.mkv' file_handler.create_file(self._SOURCE_DIRECTORY + extras_file1) extras_file2 = extras_dir + '/Movie.3.Theatrical.Trailer.mkv' file_handler.create_file(self._SOURCE_DIRECTORY + extras_file2) extras_soundtrack_dir = extras_dir + '/Soundtrack Live' file_handler.create_dir(self._SOURCE_DIRECTORY + extras_soundtrack_dir) extras_soundtrack_file1 = extras_soundtrack_dir + '/Making.the.Soundtrack.mkv' file_handler.create_file(self._SOURCE_DIRECTORY + extras_soundtrack_file1) extras_soundtrack_file2 = extras_soundtrack_dir + '/original.song.mkv' file_handler.create_file(self._SOURCE_DIRECTORY + extras_soundtrack_file2) mover.move_media_by_path( self._SOURCE_DIRECTORY + movie_dir, self._SHOW_DESTINATION_DIRECTORY, self._MOVIE_DESTINATION_DIRECTORY ) self._assert_file_moved(movie_file, self._MOVIE_DESTINATION_DIRECTORY + movie_file) self._assert_file_moved(extras_file1, self._MOVIE_DESTINATION_DIRECTORY + extras_file1) self._assert_file_moved(extras_file2, self._MOVIE_DESTINATION_DIRECTORY + extras_file2) self._assert_file_moved(extras_soundtrack_file1, self._MOVIE_DESTINATION_DIRECTORY + extras_soundtrack_file1) self._assert_file_moved(extras_soundtrack_file2, self._MOVIE_DESTINATION_DIRECTORY + extras_soundtrack_file2)
def _create_test_dirs(self): self._delete_test_dirs() file_handler.create_dir(self._SOURCE_DIRECTORY) file_handler.create_dir(self._SHOW_DESTINATION_DIRECTORY) file_handler.create_dir(self._MOVIE_DESTINATION_DIRECTORY)
def setUp(self): file_handler.create_dir(self.__SOURCE_DIRECTORY_PATH)
def setUp(self): self._create_test_dirs() self.__TV_SHOW_FILE_SOURCE_PATH = 'aaa.bbb.s01e04.something.something-something.mp4' self.__TV_SHOW_FILE_DESTINATION_PATH = self._SHOW_DESTINATION_DIRECTORY + 'aaa bbb/Season 1/aaa.bbb.s01e04.something.something-something.mp4' self.__TV_SHOW_2_FILE_1_SOURCE_PATH = 'Moradeaa.S01E03.something.something-something.mkv' self.__TV_SHOW_2_FILE_1_DESTINATION_PATH = self._SHOW_DESTINATION_DIRECTORY + 'Moradeaa/Season 1/Moradeaa.S01E03.something.something-something.mkv' self.__TV_SHOW_2_FILE_2_SOURCE_PATH = 'Moradeaa.S01E02.something.something-something.mkv' self.__TV_SHOW_2_FILE_2_DESTINATION_PATH = self._SHOW_DESTINATION_DIRECTORY + 'Moradeaa/Season 1/Moradeaa.S01E02.something.something-something.mkv' self.__TV_SHOW_2_FILE_3_ORIGINAL_2 = 'Mordeaa.S06E14.720p.HDTV.x000-Argos.mkv' self.__TV_SHOW_2_FILE_ORIGINAL_2_NFO = 'Mordeaa.S06E14.720p.HDTV.x000-Argos.nfo' self.__TV_SHOW_2_FILE_ORIGINAL_1 = 'Mordeaa.S06E15.720p.HDTV.x264-Sallad[rarbgag].mkv' self.__TV_SHOW_2_FILE_ORIGINAL_1_NFO = 'Mordeaa.S06E15.720p.HDTV.x264-Sallad[rarbgag].nfo' self.__TV_SHOW_2_FILE_PROPER = 'Mordeaa.S06E15.PROPER.720p.HDTV.x264-ARGON-[123].mkv' self.__TV_SHOW_2_FILE_PROPER_NFO = 'Mordeaa.S06E15.PROPER.720p.HDTV.x264-ARGON-[123].nfo' self.__TV_SHOW_3_SEASON_DESTINATION_DIRECTORY_PATH = self._SHOW_DESTINATION_DIRECTORY + 'ABC/Season 9' self.__TV_SHOW_3_FILE_SOURCE_PATH = 'abc.S09E02.something.something-something.mp4' self.__TV_SHOW_3_FILE_DESTINATION_PATH = self.__TV_SHOW_3_SEASON_DESTINATION_DIRECTORY_PATH + '/abc.S09E02.something.something-something.mp4' self.__TV_SHOW_4_DESTINATION_DIRECTORY_PATH = self._SHOW_DESTINATION_DIRECTORY + 'Ab Cd Ef Gh/Season 10' self.__TV_SHOW_4_SOURCE_PATH = 'Ab.Cd.Ef.Gh.PROPER.S10E13.720p.HDTV.q123-FLOOR.mkv' self.__TV_SHOW_4_DESTINATION_PATH = self.__TV_SHOW_4_DESTINATION_DIRECTORY_PATH + '/Ab.Cd.Ef.Gh.PROPER.S10E13.720p.HDTV.q123-FLOOR.mkv' self.__TV_SHOW_5_FILE_SOURCE_PATH = 'Kongrass.2016.S01E06.720p.KONG-GG.maker.MAK.SWE.mkv' self.__TV_SHOW_5_DESTINATION_PATH = self._SHOW_DESTINATION_DIRECTORY + 'Kongrass/Season 1/Kongrass.2016.S01E06.720p.KONG-GG.maker.MAK.SWE.mkv' self.__SAMPLE_FILE_SOURCE_DIRECTORY = 'Felkod.S01E03.asd.dsa.dsa-AJKL[rarbg/Sample/' self.__SAMPLE_FILE_1_SOURCE_PATH = self.__SAMPLE_FILE_SOURCE_DIRECTORY + 'sample-felkod.s01e03.720p.ui.qq-oiu.mkv' self.__SAMPLE_FILE_1_DESTINATION_PATH = self._SHOW_DESTINATION_DIRECTORY + 'felkod/Season 1/sample-felkod.s01e03.720p.ui.qq-oiu.mkv' self.__SAMPLE_FILE_2_SOURCE_PATH = self.__SAMPLE_FILE_SOURCE_DIRECTORY + 'sample.felkod.s01e03.720p.ui.qq-oiu.mkv' self.__SAMPLE_FILE_2_DESTINATION_PATH = self._SHOW_DESTINATION_DIRECTORY + 'felkod/Season 1/sample.felkod.s01e03.720p.ui.qq-oiu.mkv' self.__SAMPLE_FILE_3_SOURCE_PATH = self.__SAMPLE_FILE_SOURCE_DIRECTORY + 'SaMple-felkod.s01e03.720p.aaa.x123-RORING.mkv' self.__SAMPLE_FILE_3_DESTINATION_PATH = self._SHOW_DESTINATION_DIRECTORY + 'felkod/Season 1/SaMple-felkod.s01e03.720p.aaa.x123-RORING.mkv' self._createSourceFile(self.__TV_SHOW_2_FILE_1_SOURCE_PATH) self._createSourceFile(self.__TV_SHOW_FILE_SOURCE_PATH) self._createSourceFile(self.__TV_SHOW_2_FILE_2_SOURCE_PATH) self._createSourceFile(self.__TV_SHOW_3_FILE_SOURCE_PATH) self._createSourceFile(self.__TV_SHOW_4_SOURCE_PATH) file_handler.create_dir( self.__TV_SHOW_3_SEASON_DESTINATION_DIRECTORY_PATH) file_handler.create_dir(self.__TV_SHOW_4_DESTINATION_DIRECTORY_PATH) file_handler.create_file(self._SHOW_DESTINATION_DIRECTORY + 'Mordeaa/Season 6/' + self.__TV_SHOW_2_FILE_ORIGINAL_1) file_handler.create_file(self._SHOW_DESTINATION_DIRECTORY + 'Mordeaa/Season 6/' + self.__TV_SHOW_2_FILE_ORIGINAL_1_NFO) file_handler.create_file(self._SHOW_DESTINATION_DIRECTORY + 'Mordeaa/Season 6/' + self.__TV_SHOW_2_FILE_3_ORIGINAL_2) file_handler.create_file(self._SHOW_DESTINATION_DIRECTORY + 'Mordeaa/Season 6/' + self.__TV_SHOW_2_FILE_ORIGINAL_2_NFO) self._createSourceFile(self.__TV_SHOW_2_FILE_PROPER) self._createSourceFile(self.__TV_SHOW_2_FILE_PROPER_NFO) self._createSourceFile(self.__SAMPLE_FILE_1_SOURCE_PATH) self._createSourceFile(self.__SAMPLE_FILE_2_SOURCE_PATH) self._createSourceFile(self.__SAMPLE_FILE_3_SOURCE_PATH) self._createSourceFile(self.__TV_SHOW_5_FILE_SOURCE_PATH)
def _create_source_dir(self, relative_path): dir_path = f'{self._SOURCE_DIRECTORY}{relative_path}' file_handler.create_dir(dir_path) return dir_path