From fa76f8a2863c932f7a19407cf939a99bda581420 Mon Sep 17 00:00:00 2001 From: Matthew Broadway Date: Sat, 17 May 2025 12:03:59 +0100 Subject: [PATCH] fix tests --- test/test_cookies.py | 10 +++++++--- yt_dlp/cookies.py | 3 +++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/test/test_cookies.py b/test/test_cookies.py index 4b9b9b5a9..bb6165460 100644 --- a/test/test_cookies.py +++ b/test/test_cookies.py @@ -11,6 +11,7 @@ _LinuxDesktopEnvironment, parse_safari_cookies, pbkdf2_sha1, + _get_chromium_based_browser_settings, ) @@ -92,24 +93,27 @@ def test_chrome_cookie_decryptor_mac_derive_key(self): self.assertEqual(key, b'Y\xe2\xc0\xd0P\xf6\xf4\xe1l\xc1\x8cQ\xcb|\xcdY') def test_chrome_cookie_decryptor_linux_v10(self): + config = _get_chromium_based_browser_settings('chrome') with MonkeyPatch(cookies, {'_get_linux_keyring_password': lambda *args, **kwargs: b''}): encrypted_value = b'v10\xccW%\xcd\xe6\xe6\x9fM" \xa7\xb0\xca\xe4\x07\xd6' value = 'USD' - decryptor = LinuxChromeCookieDecryptor('Chrome', Logger()) + decryptor = LinuxChromeCookieDecryptor(config, 'Chrome', Logger()) self.assertEqual(decryptor.decrypt(encrypted_value), value) def test_chrome_cookie_decryptor_linux_v11(self): + config = _get_chromium_based_browser_settings('chrome') with MonkeyPatch(cookies, {'_get_linux_keyring_password': lambda *args, **kwargs: b''}): encrypted_value = b'v11#\x81\x10>`w\x8f)\xc0\xb2\xc1\r\xf4\x1al\xdd\x93\xfd\xf8\xf8N\xf2\xa9\x83\xf1\xe9o\x0elVQd' value = 'tz=Europe.London' - decryptor = LinuxChromeCookieDecryptor('Chrome', Logger()) + decryptor = LinuxChromeCookieDecryptor(config, 'Chrome', Logger()) self.assertEqual(decryptor.decrypt(encrypted_value), value) def test_chrome_cookie_decryptor_linux_v10_meta24(self): + config = _get_chromium_based_browser_settings('chrome') with MonkeyPatch(cookies, {'_get_linux_keyring_password': lambda *args, **kwargs: b''}): encrypted_value = b'v10\x1f\xe4\x0e[\x83\x0c\xcc*kPi \xce\x8d\x1d\xbb\x80\r\x11\t\xbb\x9e^Hy\x94\xf4\x963\x9f\x82\xba\xfe\xa1\xed\xb9\xf1)\x00710\x92\xc8/<\x96B' value = 'DE' - decryptor = LinuxChromeCookieDecryptor('Chrome', Logger(), meta_version=24) + decryptor = LinuxChromeCookieDecryptor(config, 'Chrome', Logger(), meta_version=24) self.assertEqual(decryptor.decrypt(encrypted_value), value) def test_chrome_cookie_decryptor_windows_v10(self): diff --git a/yt_dlp/cookies.py b/yt_dlp/cookies.py index 830a20d4c..725f0294c 100644 --- a/yt_dlp/cookies.py +++ b/yt_dlp/cookies.py @@ -195,10 +195,12 @@ def _extract_firefox_cookies(browser_name, profile, container, logger): if cursor is not None: cursor.connection.close() + @dataclass class _FirefoxBrowserSettings: browser_dirs: list[str] + def _firefox_based_browser_settings(browser_name): if sys.platform in ('cygwin', 'win32'): appdata = os.path.expandvars(R'%APPDATA%') @@ -242,6 +244,7 @@ def _firefox_based_browser_settings(browser_name): browser_dirs=browser_dirs, ) + def _firefox_cookie_dbs(roots): for root in map(os.path.abspath, roots): for pattern in ('', '*/', 'Profiles/*/'):