aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_cookies.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2022-03-15 00:19:57 -0400
committerLibravatarUnit 193 <unit193@unit193.net>2022-03-15 00:19:57 -0400
commitc2e774d3f5a4499b8beb5a12ab46a0099b16b1e7 (patch)
treea14107397b5bcb491aa4f4fb3e0feb4582e1879b /test/test_cookies.py
parent7900ee4e3692dbd8056c3e47c81bb22eda030b65 (diff)
New upstream version 1.21.0.upstream/1.21.0
Diffstat (limited to 'test/test_cookies.py')
-rw-r--r--test/test_cookies.py86
1 files changed, 83 insertions, 3 deletions
diff --git a/test/test_cookies.py b/test/test_cookies.py
index d103d02..0657456 100644
--- a/test/test_cookies.py
+++ b/test/test_cookies.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
-# Copyright 2017-2020 Mike Fährmann
+# Copyright 2017-2022 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
@@ -12,6 +12,7 @@ import sys
import unittest
from unittest import mock
+import time
import logging
import tempfile
from os.path import join
@@ -88,7 +89,7 @@ class TestCookiedict(unittest.TestCase):
self.assertEqual(sorted(cookies.values()), sorted(self.cdict.values()))
def test_domain(self):
- for category in ["exhentai", "idolcomplex", "nijie", "seiga"]:
+ for category in ["exhentai", "idolcomplex", "nijie"]:
extr = _get_extractor(category)
cookies = extr.session.cookies
for key in self.cdict:
@@ -107,7 +108,6 @@ class TestCookieLogin(unittest.TestCase):
"exhentai" : ("ipb_member_id", "ipb_pass_hash"),
"idolcomplex": ("login", "pass_hash"),
"nijie" : ("nemail", "nlogin"),
- "seiga" : ("user_session",),
}
for category, cookienames in extr_cookies.items():
cookies = {name: "value" for name in cookienames}
@@ -118,6 +118,86 @@ class TestCookieLogin(unittest.TestCase):
mock_login.assert_not_called()
+class TestCookieUtils(unittest.TestCase):
+
+ def test_check_cookies(self):
+ extr = extractor.find("test:")
+ self.assertFalse(extr._cookiejar, "empty")
+ self.assertFalse(extr.cookiedomain, "empty")
+
+ # always returns False when checking for empty cookie list
+ self.assertFalse(extr._check_cookies(()))
+
+ self.assertFalse(extr._check_cookies(("a",)))
+ self.assertFalse(extr._check_cookies(("a", "b")))
+ self.assertFalse(extr._check_cookies(("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._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")))
+
+ def test_check_cookies_domain(self):
+ extr = extractor.find("test:")
+ self.assertFalse(extr._cookiejar, "empty")
+ extr.cookiedomain = ".example.org"
+
+ self.assertFalse(extr._check_cookies(("a",)))
+ self.assertFalse(extr._check_cookies(("a", "b")))
+
+ extr._cookiejar.set("a", "1")
+ self.assertFalse(extr._check_cookies(("a",)))
+
+ extr._cookiejar.set("a", "1", domain=extr.cookiedomain)
+ self.assertTrue(extr._check_cookies(("a",)))
+
+ extr._cookiejar.set("a", "1", domain="www" + extr.cookiedomain)
+ self.assertEqual(len(extr._cookiejar), 3)
+ self.assertTrue(extr._check_cookies(("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")))
+
+ def test_check_cookies_expires(self):
+ extr = extractor.find("test:")
+ self.assertFalse(extr._cookiejar, "empty")
+ self.assertFalse(extr.cookiedomain, "empty")
+
+ now = int(time.time())
+ log = logging.getLogger("test")
+
+ extr._cookiejar.set("a", "1", expires=now-100)
+ with mock.patch.object(log, "warning") as mw:
+ self.assertFalse(extr._check_cookies(("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)
+ with mock.patch.object(log, "warning") as mw:
+ self.assertFalse(extr._check_cookies(("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)
+ with mock.patch.object(log, "warning") as mw:
+ self.assertFalse(extr._check_cookies(("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)
+ with mock.patch.object(log, "warning") as mw:
+ self.assertTrue(extr._check_cookies(("a",)))
+ self.assertEqual(mw.call_count, 0)
+
+
def _get_extractor(category):
for extr in extractor.extractors():
if extr.category == category and hasattr(extr, "_login_impl"):