|
|
|
@ -1,7 +1,7 @@
|
|
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
|
|
|
# Copyright 2017-2022 Mike Fährmann
|
|
|
|
|
# Copyright 2017-2023 Mike Fährmann
|
|
|
|
|
#
|
|
|
|
|
# This program is free software; you can redistribute it and/or modify
|
|
|
|
|
# it under the terms of the GNU General Public License version 2 as
|
|
|
|
@ -47,7 +47,7 @@ class TestCookiejar(unittest.TestCase):
|
|
|
|
|
def test_cookiefile(self):
|
|
|
|
|
config.set((), "cookies", self.cookiefile)
|
|
|
|
|
|
|
|
|
|
cookies = extractor.find("test:").session.cookies
|
|
|
|
|
cookies = extractor.find("test:").cookies
|
|
|
|
|
self.assertEqual(len(cookies), 1)
|
|
|
|
|
|
|
|
|
|
cookie = next(iter(cookies))
|
|
|
|
@ -66,7 +66,7 @@ class TestCookiejar(unittest.TestCase):
|
|
|
|
|
config.set((), "cookies", filename)
|
|
|
|
|
log = logging.getLogger("test")
|
|
|
|
|
with mock.patch.object(log, "warning") as mock_warning:
|
|
|
|
|
cookies = extractor.find("test:").session.cookies
|
|
|
|
|
cookies = extractor.find("test:").cookies
|
|
|
|
|
self.assertEqual(len(cookies), 0)
|
|
|
|
|
self.assertEqual(mock_warning.call_count, 1)
|
|
|
|
|
self.assertEqual(mock_warning.call_args[0][0], "cookies: %s")
|
|
|
|
@ -83,7 +83,7 @@ class TestCookiedict(unittest.TestCase):
|
|
|
|
|
config.clear()
|
|
|
|
|
|
|
|
|
|
def test_dict(self):
|
|
|
|
|
cookies = extractor.find("test:").session.cookies
|
|
|
|
|
cookies = extractor.find("test:").cookies
|
|
|
|
|
self.assertEqual(len(cookies), len(self.cdict))
|
|
|
|
|
self.assertEqual(sorted(cookies.keys()), sorted(self.cdict.keys()))
|
|
|
|
|
self.assertEqual(sorted(cookies.values()), sorted(self.cdict.values()))
|
|
|
|
@ -91,11 +91,11 @@ class TestCookiedict(unittest.TestCase):
|
|
|
|
|
def test_domain(self):
|
|
|
|
|
for category in ["exhentai", "idolcomplex", "nijie", "horne"]:
|
|
|
|
|
extr = _get_extractor(category)
|
|
|
|
|
cookies = extr.session.cookies
|
|
|
|
|
cookies = extr.cookies
|
|
|
|
|
for key in self.cdict:
|
|
|
|
|
self.assertTrue(key in cookies)
|
|
|
|
|
for c in cookies:
|
|
|
|
|
self.assertEqual(c.domain, extr.cookiedomain)
|
|
|
|
|
self.assertEqual(c.domain, extr.cookies_domain)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestCookieLogin(unittest.TestCase):
|
|
|
|
@ -123,79 +123,79 @@ class TestCookieUtils(unittest.TestCase):
|
|
|
|
|
|
|
|
|
|
def test_check_cookies(self):
|
|
|
|
|
extr = extractor.find("test:")
|
|
|
|
|
self.assertFalse(extr._cookiejar, "empty")
|
|
|
|
|
self.assertFalse(extr.cookiedomain, "empty")
|
|
|
|
|
self.assertFalse(extr.cookies, "empty")
|
|
|
|
|
self.assertFalse(extr.cookies_domain, "empty")
|
|
|
|
|
|
|
|
|
|
# always returns False when checking for empty cookie list
|
|
|
|
|
self.assertFalse(extr._check_cookies(()))
|
|
|
|
|
self.assertFalse(extr.cookies_check(()))
|
|
|
|
|
|
|
|
|
|
self.assertFalse(extr._check_cookies(("a",)))
|
|
|
|
|
self.assertFalse(extr._check_cookies(("a", "b")))
|
|
|
|
|
self.assertFalse(extr._check_cookies(("a", "b", "c")))
|
|
|
|
|
self.assertFalse(extr.cookies_check(("a",)))
|
|
|
|
|
self.assertFalse(extr.cookies_check(("a", "b")))
|
|
|
|
|
self.assertFalse(extr.cookies_check(("a", "b", "c")))
|
|
|
|
|
|
|
|
|
|
extr._cookiejar.set("a", "1")
|
|
|
|
|
self.assertTrue(extr._check_cookies(("a",)))
|
|
|
|
|
self.assertFalse(extr._check_cookies(("a", "b")))
|
|
|
|
|
self.assertFalse(extr._check_cookies(("a", "b", "c")))
|
|
|
|
|
extr.cookies.set("a", "1")
|
|
|
|
|
self.assertTrue(extr.cookies_check(("a",)))
|
|
|
|
|
self.assertFalse(extr.cookies_check(("a", "b")))
|
|
|
|
|
self.assertFalse(extr.cookies_check(("a", "b", "c")))
|
|
|
|
|
|
|
|
|
|
extr._cookiejar.set("b", "2")
|
|
|
|
|
self.assertTrue(extr._check_cookies(("a",)))
|
|
|
|
|
self.assertTrue(extr._check_cookies(("a", "b")))
|
|
|
|
|
self.assertFalse(extr._check_cookies(("a", "b", "c")))
|
|
|
|
|
extr.cookies.set("b", "2")
|
|
|
|
|
self.assertTrue(extr.cookies_check(("a",)))
|
|
|
|
|
self.assertTrue(extr.cookies_check(("a", "b")))
|
|
|
|
|
self.assertFalse(extr.cookies_check(("a", "b", "c")))
|
|
|
|
|
|
|
|
|
|
def test_check_cookies_domain(self):
|
|
|
|
|
extr = extractor.find("test:")
|
|
|
|
|
self.assertFalse(extr._cookiejar, "empty")
|
|
|
|
|
extr.cookiedomain = ".example.org"
|
|
|
|
|
self.assertFalse(extr.cookies, "empty")
|
|
|
|
|
extr.cookies_domain = ".example.org"
|
|
|
|
|
|
|
|
|
|
self.assertFalse(extr._check_cookies(("a",)))
|
|
|
|
|
self.assertFalse(extr._check_cookies(("a", "b")))
|
|
|
|
|
self.assertFalse(extr.cookies_check(("a",)))
|
|
|
|
|
self.assertFalse(extr.cookies_check(("a", "b")))
|
|
|
|
|
|
|
|
|
|
extr._cookiejar.set("a", "1")
|
|
|
|
|
self.assertFalse(extr._check_cookies(("a",)))
|
|
|
|
|
extr.cookies.set("a", "1")
|
|
|
|
|
self.assertFalse(extr.cookies_check(("a",)))
|
|
|
|
|
|
|
|
|
|
extr._cookiejar.set("a", "1", domain=extr.cookiedomain)
|
|
|
|
|
self.assertTrue(extr._check_cookies(("a",)))
|
|
|
|
|
extr.cookies.set("a", "1", domain=extr.cookies_domain)
|
|
|
|
|
self.assertTrue(extr.cookies_check(("a",)))
|
|
|
|
|
|
|
|
|
|
extr._cookiejar.set("a", "1", domain="www" + extr.cookiedomain)
|
|
|
|
|
self.assertEqual(len(extr._cookiejar), 3)
|
|
|
|
|
self.assertTrue(extr._check_cookies(("a",)))
|
|
|
|
|
extr.cookies.set("a", "1", domain="www" + extr.cookies_domain)
|
|
|
|
|
self.assertEqual(len(extr.cookies), 3)
|
|
|
|
|
self.assertTrue(extr.cookies_check(("a",)))
|
|
|
|
|
|
|
|
|
|
extr._cookiejar.set("b", "2", domain=extr.cookiedomain)
|
|
|
|
|
extr._cookiejar.set("c", "3", domain=extr.cookiedomain)
|
|
|
|
|
self.assertTrue(extr._check_cookies(("a", "b", "c")))
|
|
|
|
|
extr.cookies.set("b", "2", domain=extr.cookies_domain)
|
|
|
|
|
extr.cookies.set("c", "3", domain=extr.cookies_domain)
|
|
|
|
|
self.assertTrue(extr.cookies_check(("a", "b", "c")))
|
|
|
|
|
|
|
|
|
|
def test_check_cookies_expires(self):
|
|
|
|
|
extr = extractor.find("test:")
|
|
|
|
|
self.assertFalse(extr._cookiejar, "empty")
|
|
|
|
|
self.assertFalse(extr.cookiedomain, "empty")
|
|
|
|
|
self.assertFalse(extr.cookies, "empty")
|
|
|
|
|
self.assertFalse(extr.cookies_domain, "empty")
|
|
|
|
|
|
|
|
|
|
now = int(time.time())
|
|
|
|
|
log = logging.getLogger("test")
|
|
|
|
|
|
|
|
|
|
extr._cookiejar.set("a", "1", expires=now-100)
|
|
|
|
|
extr.cookies.set("a", "1", expires=now-100)
|
|
|
|
|
with mock.patch.object(log, "warning") as mw:
|
|
|
|
|
self.assertFalse(extr._check_cookies(("a",)))
|
|
|
|
|
self.assertFalse(extr.cookies_check(("a",)))
|
|
|
|
|
self.assertEqual(mw.call_count, 1)
|
|
|
|
|
self.assertEqual(mw.call_args[0], ("Cookie '%s' has expired", "a"))
|
|
|
|
|
|
|
|
|
|
extr._cookiejar.set("a", "1", expires=now+100)
|
|
|
|
|
extr.cookies.set("a", "1", expires=now+100)
|
|
|
|
|
with mock.patch.object(log, "warning") as mw:
|
|
|
|
|
self.assertTrue(extr._check_cookies(("a",)))
|
|
|
|
|
self.assertTrue(extr.cookies_check(("a",)))
|
|
|
|
|
self.assertEqual(mw.call_count, 1)
|
|
|
|
|
self.assertEqual(mw.call_args[0], (
|
|
|
|
|
"Cookie '%s' will expire in less than %s hour%s", "a", 1, ""))
|
|
|
|
|
|
|
|
|
|
extr._cookiejar.set("a", "1", expires=now+100+7200)
|
|
|
|
|
extr.cookies.set("a", "1", expires=now+100+7200)
|
|
|
|
|
with mock.patch.object(log, "warning") as mw:
|
|
|
|
|
self.assertTrue(extr._check_cookies(("a",)))
|
|
|
|
|
self.assertTrue(extr.cookies_check(("a",)))
|
|
|
|
|
self.assertEqual(mw.call_count, 1)
|
|
|
|
|
self.assertEqual(mw.call_args[0], (
|
|
|
|
|
"Cookie '%s' will expire in less than %s hour%s", "a", 3, "s"))
|
|
|
|
|
|
|
|
|
|
extr._cookiejar.set("a", "1", expires=now+100+24*3600)
|
|
|
|
|
extr.cookies.set("a", "1", expires=now+100+24*3600)
|
|
|
|
|
with mock.patch.object(log, "warning") as mw:
|
|
|
|
|
self.assertTrue(extr._check_cookies(("a",)))
|
|
|
|
|
self.assertTrue(extr.cookies_check(("a",)))
|
|
|
|
|
self.assertEqual(mw.call_count, 0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|