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'], [ [ '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