]>
jfr.im git - yt-dlp.git/blob - test/test_YoutubeDLCookieJar.py
3 # Allow direct execution
8 sys
.path
.insert(0, os
.path
.dirname(os
.path
.dirname(os
.path
.abspath(__file__
))))
14 from yt_dlp
.utils
import YoutubeDLCookieJar
17 class TestYoutubeDLCookieJar(unittest
.TestCase
):
18 def test_keep_session_cookies(self
):
19 cookiejar
= YoutubeDLCookieJar('./test/testdata/cookies/session_cookies.txt')
20 cookiejar
.load(ignore_discard
=True, ignore_expires
=True)
21 tf
= tempfile
.NamedTemporaryFile(delete
=False)
23 cookiejar
.save(filename
=tf
.name
, ignore_discard
=True, ignore_expires
=True)
24 temp
= tf
.read().decode()
25 self
.assertTrue(re
.search(
26 r
'www\.foobar\.foobar\s+FALSE\s+/\s+TRUE\s+0\s+YoutubeDLExpiresEmpty\s+YoutubeDLExpiresEmptyValue', temp
))
27 self
.assertTrue(re
.search(
28 r
'www\.foobar\.foobar\s+FALSE\s+/\s+TRUE\s+0\s+YoutubeDLExpires0\s+YoutubeDLExpires0Value', temp
))
33 def test_strip_httponly_prefix(self
):
34 cookiejar
= YoutubeDLCookieJar('./test/testdata/cookies/httponly_cookies.txt')
35 cookiejar
.load(ignore_discard
=True, ignore_expires
=True)
37 def assert_cookie_has_value(key
):
38 self
.assertEqual(cookiejar
._cookies
['www.foobar.foobar']['/'][key
].value
, key
+ '_VALUE')
40 assert_cookie_has_value('HTTPONLY_COOKIE')
41 assert_cookie_has_value('JS_ACCESSIBLE_COOKIE')
43 def test_malformed_cookies(self
):
44 cookiejar
= YoutubeDLCookieJar('./test/testdata/cookies/malformed_cookies.txt')
45 cookiejar
.load(ignore_discard
=True, ignore_expires
=True)
46 # Cookies should be empty since all malformed cookie file entries
48 self
.assertFalse(cookiejar
._cookies
)
51 if __name__
== '__main__':