]> jfr.im git - yt-dlp.git/blame - test/test_YoutubeDLCookieJar.py
[misc] Cleanup (#9765)
[yt-dlp.git] / test / test_YoutubeDLCookieJar.py
CommitLineData
cc52de43 1#!/usr/bin/env python3
54007a45 2
3# Allow direct execution
9e02c2c7 4import os
9e02c2c7 5import sys
9e02c2c7 6import unittest
f8271158 7
9e02c2c7
S
8sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
9
54007a45 10
11import re
12import tempfile
13
b87e01c1 14from yt_dlp.cookies import YoutubeDLCookieJar
9e02c2c7
S
15
16
17class TestYoutubeDLCookieJar(unittest.TestCase):
18 def test_keep_session_cookies(self):
19 cookiejar = YoutubeDLCookieJar('./test/testdata/cookies/session_cookies.txt')
62b5c94c 20 cookiejar.load()
9e02c2c7
S
21 tf = tempfile.NamedTemporaryFile(delete=False)
22 try:
62b5c94c 23 cookiejar.save(filename=tf.name)
0f06bcd7 24 temp = tf.read().decode()
9e02c2c7
S
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))
29 finally:
30 tf.close()
31 os.remove(tf.name)
32
e7e62441 33 def test_strip_httponly_prefix(self):
34 cookiejar = YoutubeDLCookieJar('./test/testdata/cookies/httponly_cookies.txt')
62b5c94c 35 cookiejar.load()
e7e62441 36
042b6649
S
37 def assert_cookie_has_value(key):
38 self.assertEqual(cookiejar._cookies['www.foobar.foobar']['/'][key].value, key + '_VALUE')
39
40 assert_cookie_has_value('HTTPONLY_COOKIE')
41 assert_cookie_has_value('JS_ACCESSIBLE_COOKIE')
e7e62441 42
c380cc28
S
43 def test_malformed_cookies(self):
44 cookiejar = YoutubeDLCookieJar('./test/testdata/cookies/malformed_cookies.txt')
62b5c94c 45 cookiejar.load()
c380cc28
S
46 # Cookies should be empty since all malformed cookie file entries
47 # will be ignored
48 self.assertFalse(cookiejar._cookies)
49
b87e01c1 50 def test_get_cookie_header(self):
51 cookiejar = YoutubeDLCookieJar('./test/testdata/cookies/httponly_cookies.txt')
62b5c94c 52 cookiejar.load()
b87e01c1 53 header = cookiejar.get_cookie_header('https://www.foobar.foobar')
54 self.assertIn('HTTPONLY_COOKIE', header)
55
6c5211ce 56 def test_get_cookies_for_url(self):
57 cookiejar = YoutubeDLCookieJar('./test/testdata/cookies/session_cookies.txt')
62b5c94c 58 cookiejar.load()
6c5211ce 59 cookies = cookiejar.get_cookies_for_url('https://www.foobar.foobar/')
60 self.assertEqual(len(cookies), 2)
61 cookies = cookiejar.get_cookies_for_url('https://foobar.foobar/')
62 self.assertFalse(cookies)
63
9e02c2c7
S
64
65if __name__ == '__main__':
66 unittest.main()