import datetime import pytest import file_renamer from file_renamer import Release @pytest.mark.parametrize( ["filename", "date"], [ [ "Tushy.21.09.13.Jia.Lissa.XXX.720p.WEB.x264-GalaXXXy", datetime.date(2021, 9, 13), ], [ "[AdultTime] Aidra Fox (Lady Gonzo - 28.02.2019) [720p HEVC].mkv", datetime.date(2019, 2, 28), ], [ "15.01.10_-_Aspen_Ora_-_Cock_Crazy_-_x265.mp4", datetime.date(2015, 1, 10), ], [ "Karma Rx, Valerica Steele - Valerica & Karma’s Anal Slutfest -- AllAnal 20210912", datetime.date(2021, 9, 12), ], [ "Scarlett Hampton - Taking Scarlett’s Ass For a Ride 09_15_21.mp4", datetime.date(2021, 9, 15), ], [ "Sia_Siberia & LittleReislin - Best Valentine's Day gift ever Release Date _ 12_10_20.mp4", datetime.date(2020, 12, 10), ], [ "Kenna James - Succubus 09_09_21.mp4", datetime.date(2021, 9, 9), ], [ "Hot Bitch Dreaming about being Hard Fucked by her Stepbrother - Diana Daniels_Diana Daniels_720p.mp4", None, ], [ "DadCrush.21.10.09.Ailee.Anne.My.Stepdaughters.Hot.XXX.1080p.HEVC.x265.PRT.mp4", datetime.date(2021, 10, 9), ], ], ) def test_parse_date(filename: str, date: datetime.date | None): parsed = file_renamer.parse_date(filename) if not date: assert parsed is None return assert parsed.date == date @pytest.mark.parametrize( ["filename", "expected"], [ [ "PornFidelity.E1109.Uma.Jolie.XXX.720p.HEVC.x265.PRT", Release( studio="PornFidelity", actors=["Uma Jolie"], title="E1109", ), ], [ "PenthouseGold.23.02.05.Tiffany.Tatum.XXX.720p.HEVC.x265.PRT", Release( studio="DoctorAdventures", actors=["Jamie Michelle"], title="Nurse Jamie Knows Best", released_at=datetime.date(2021, 5, 26), ), ], [ "Rebecca Volpetti -- @RealityKings -- Driving Him Crazy [1080p, x265] -- 2019-04-10", Release( actors=["Rebecca Volpetti"], studio="RealityKings", title="Driving Him Crazy", released_at=datetime.date(2019, 4, 10), ), ], [ "Liz Jordan -- @Lubed -- Sopping Oil -- 2023-02-07 [1080p, x265]", Release( actors=["Liz Jordan"], studio="Lubed", title="Sopping Oil", released_at=datetime.date(2023, 2, 7), ), ], [ "Liz Jordan--@Lubed--Sopping Oil--2023-02-07 [1080p, x265]", Release( actors=["Liz Jordan"], studio="Lubed", title="Sopping Oil", released_at=datetime.date(2023, 2, 7), ), ], [ "Liz Jordan -- @Lubed -- 2023-02-07 [1080p, x265]", Release( actors=["Liz Jordan"], studio="Lubed", title=None, released_at=datetime.date(2023, 2, 7), ), ], [ "Liz Jordan -- Sopping Oil -- 2023-02-07 [1080p, x265]", Release( actors=["Liz Jordan"], studio=None, title="Sopping Oil", released_at=datetime.date(2023, 2, 7), ), ], [ "Liz Jordan -- Sopping Oil", Release( actors=["Liz Jordan"], studio=None, title="Sopping Oil", released_at=None, ), ], [ "DadCrush.21.10.09.Ailee.Anne.My.Stepdaughters.Hot.XXX.1080p.HEVC.x265.PRT.mp4", Release( studio="DadCrush", actors=["Ailee Anne"], title="My Stepdaughters Hot", released_at=datetime.date(2021, 10, 9), ), ], [ "Deeper.21.11.11.Kenzie.Anne.XXX.1080p.HEVC.x265.PRT.mkv", Release( studio="Deeper", actors=["Kenzie Anne"], title=None, released_at=datetime.date(2021, 11, 11), ), ], [ "DevilsFilm.22.03.19.Kira.Noir.Wife.Swap.Schemes.2.XXX.1080p.HEVC.x265.PRT.mkv", Release( studio="DevilsFilm", actors=["Kira Noir"], title="Wife Swap Schemes 2", released_at=datetime.date(2022, 3, 19), ), ], [ "DogHouseDigital.22.04.06.Maddy.May.Full.Service.Massage.XXX.1080p.HEVC.x265.PRT.mkv", Release( studio="DogHouseDigital", actors=["Maddy May"], title="Full Service Massage", released_at=datetime.date(2022, 4, 6), ), ], [ "EvilAngel.22.04.05.Diana.Grace.XXX.1080p.HEVC.x265.PRT.mkv", Release( studio="EvilAngel", actors=["Diana Grace"], title=None, released_at=datetime.date(2022, 4, 5), ), ], [ "Slayed.21.10.07.Izzy.Lush.And.Aidra.Fox.XXX.1080p.HEVC.x265.PRT.mkv", Release( studio="Slayed", actors=["Aidra Fox", "Izzy Lush"], title=None, released_at=datetime.date(2021, 10, 7), ), ], [ "ExploitedCollegeGirls.22.06.30.Gaby.XXX.1080p.HEVC.x265.PRT.mkv", Release( studio="ExploitedCollegeGirls", actors=["Gaby"], title=None, released_at=datetime.date(2022, 6, 30), ), ], [ "DoctorAdventures.21.05.26.Jamie.Michelle.Nurse.Jamie.Knows.Best.PRT.mp4", Release( studio="DoctorAdventures", actors=["Jamie Michelle"], title="Nurse Jamie Knows Best", released_at=datetime.date(2021, 5, 26), ), ], ], ) def test_parse_release(filename: str, expected): parsed = file_renamer.parse_release(filename) assert parsed == expected