import sys import os # getting the name of the directory # where the this file is present. current = os.path.dirname(os.path.realpath(__file__)) # Getting the parent directory name # where the current directory is present. parent = os.path.dirname(current) # adding the parent directory to # the sys.path. sys.path.append(parent) from src.main import cleanup_watched tv_shows_watched_list_1 = { frozenset({("tvdb", "75710"), ("title", "Criminal Minds"), ("imdb", "tt0452046"), ("locations", ("Criminal Minds",)), ("tmdb", "4057")}): { "Season 1": [ {'imdb': 'tt0550489', 'tmdb': '282843', 'tvdb': '176357', 'locations': ('Criminal Minds S01E01 Extreme Aggressor WEBDL-720p.mkv',)}, {'imdb': 'tt0550487', 'tmdb': '282861', 'tvdb': '300385', 'locations': ('Criminal Minds S01E02 Compulsion WEBDL-720p.mkv',)} ] }, frozenset({("title", "Test"), ("locations", ("Test",))}): { "Season 1": [ {'locations': ('Test S01E01.mkv',)}, {'locations': ('Test S01E02.mkv',)} ] } } movies_watched_list_1 = [ {"imdb":"tt2380307", "tmdb":"354912", 'title': 'Coco', 'locations': ('Coco (2017) Remux-1080p.mkv',)}, {"tmdbcollection":"448150", "imdb":"tt1431045", "tmdb":"293660", 'title': 'Deadpool', 'locations': ('Deadpool (2016) Remux-1080p.mkv',)}, ] tv_shows_watched_list_2 = { frozenset({("tvdb", "75710"), ("title", "Criminal Minds"), ("imdb", "tt0452046"), ("locations", ("Criminal Minds",)), ("tmdb", "4057")}): { "Season 1": [ {'imdb': 'tt0550487', 'tmdb': '282861', 'tvdb': '300385', 'locations': ('Criminal Minds S01E02 Compulsion WEBDL-720p.mkv',)}, {'imdb': 'tt0550498', 'tmdb': '282865', 'tvdb': '300474', 'locations': ("Criminal Minds S01E03 Won't Get Fooled Again WEBDL-720p.mkv",)} ] }, frozenset({("title", "Test"), ("locations", ("Test",))}): { "Season 1": [ {'locations': ('Test S01E02.mkv',)}, {'locations': ('Test S01E03.mkv',)} ] } } movies_watched_list_2 = [ {"imdb":"tt2380307", "tmdb":"354912", 'title': 'Coco', 'locations': ('Coco (2017) Remux-1080p.mkv',)}, {'imdb': 'tt0384793', 'tmdb': '9788', 'tvdb': '9103', 'title': 'Accepted', 'locations': ('Accepted (2006) Remux-1080p.mkv',)} ] # Test to see if objects get deleted all the way up to the root. tv_shows_2_watched_list_1 = { frozenset({("tvdb", "75710"), ("title", "Criminal Minds"), ("imdb", "tt0452046"), ("locations", ("Criminal Minds",)), ("tmdb", "4057")}): { "Season 1": [ {'imdb': 'tt0550489', 'tmdb': '282843', 'tvdb': '176357', 'locations': ('Criminal Minds S01E01 Extreme Aggressor WEBDL-720p.mkv',)}, ] } } expected_tv_show_watched_list_1 = { frozenset({("tvdb", "75710"), ("title", "Criminal Minds"), ("imdb", "tt0452046"), ("locations", ("Criminal Minds",)), ("tmdb", "4057")}): { "Season 1": [ {'imdb': 'tt0550489', 'tmdb': '282843', 'tvdb': '176357', 'locations': ('Criminal Minds S01E01 Extreme Aggressor WEBDL-720p.mkv',)} ] }, frozenset({("title", "Test"), ("locations", ("Test",))}): { "Season 1": [ {'locations': ('Test S01E01.mkv',)} ] } } expected_movie_watched_list_1 = [ {"tmdbcollection":"448150", "imdb":"tt1431045", "tmdb":"293660", 'title': 'Deadpool', 'locations': ('Deadpool (2016) Remux-1080p.mkv',)} ] expected_tv_show_watched_list_2 = { frozenset({("tvdb", "75710"), ("title", "Criminal Minds"), ("imdb", "tt0452046"), ("locations", ("Criminal Minds",)), ("tmdb", "4057")}): { "Season 1": [ {'imdb': 'tt0550498', 'tmdb': '282865', 'tvdb': '300474', 'locations': ("Criminal Minds S01E03 Won't Get Fooled Again WEBDL-720p.mkv",)} ] }, frozenset({("title", "Test"), ("locations", ("Test",))}): { "Season 1": [ {'locations': ('Test S01E03.mkv',)} ] } } expected_movie_watched_list_2 = [ {'imdb': 'tt0384793', 'tmdb': '9788', 'tvdb': '9103', 'title': 'Accepted', 'locations': ('Accepted (2006) Remux-1080p.mkv',)} ] def test_simple_cleanup_watched(): user_watched_list_1 = { "user1": { "TV Shows": tv_shows_watched_list_1, "Movies": movies_watched_list_1, "Other Shows": tv_shows_2_watched_list_1 }, } user_watched_list_2 = { "user1": { "TV Shows": tv_shows_watched_list_2, "Movies": movies_watched_list_2, "Other Shows": tv_shows_2_watched_list_1 } } expected_watched_list_1 = { "user1": { "TV Shows": expected_tv_show_watched_list_1 , "Movies": expected_movie_watched_list_1 } } expected_watched_list_2 = { "user1": { "TV Shows": expected_tv_show_watched_list_2 , "Movies": expected_movie_watched_list_2 } } return_watched_list_1 = cleanup_watched(user_watched_list_1, user_watched_list_2) return_watched_list_2 = cleanup_watched(user_watched_list_2, user_watched_list_1) assert return_watched_list_1 == expected_watched_list_1 assert return_watched_list_2 == expected_watched_list_2 def test_mapping_cleanup_watched(): user_watched_list_1 = { "user1": { "TV Shows": tv_shows_watched_list_1, "Movies": movies_watched_list_1, "Other Shows": tv_shows_2_watched_list_1 }, } user_watched_list_2 = { "user2": { "Shows": tv_shows_watched_list_2, "Movies": movies_watched_list_2, "Other Shows": tv_shows_2_watched_list_1 } } expected_watched_list_1 = { "user1": { "TV Shows": expected_tv_show_watched_list_1 , "Movies": expected_movie_watched_list_1 } } expected_watched_list_2 = { "user2": { "Shows": expected_tv_show_watched_list_2 , "Movies": expected_movie_watched_list_2 } } user_mapping = { "user1": "user2" } library_mapping = { "TV Shows": "Shows" } return_watched_list_1 = cleanup_watched(user_watched_list_1, user_watched_list_2, user_mapping=user_mapping, library_mapping=library_mapping) return_watched_list_2 = cleanup_watched(user_watched_list_2, user_watched_list_1, user_mapping=user_mapping, library_mapping=library_mapping) assert return_watched_list_1 == expected_watched_list_1 assert return_watched_list_2 == expected_watched_list_2