aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_extractor.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2025-12-20 05:49:11 -0500
committerLibravatarUnit 193 <unit193@unit193.net>2025-12-20 05:49:11 -0500
commitc586ea4b3c871f5696626f9820e8c88a4e78f4a6 (patch)
treee6d7bae96282c3d147159f091d451e53bdaa2efe /test/test_extractor.py
parent01a2bf622c31072d1322884584404b9bd59b28cc (diff)
parenta24ec1647aeac35a63b744ea856011ad6e06be3b (diff)
Update upstream source from tag 'upstream/1.31.1'
Update to upstream version '1.31.1' with Debian dir b5d91c25143175f933b1c69c7e82249cd7e145ab
Diffstat (limited to 'test/test_extractor.py')
-rw-r--r--test/test_extractor.py86
1 files changed, 79 insertions, 7 deletions
diff --git a/test/test_extractor.py b/test/test_extractor.py
index a623e1d..c06b890 100644
--- a/test/test_extractor.py
+++ b/test/test_extractor.py
@@ -14,10 +14,9 @@ from unittest.mock import patch
import time
import string
-from datetime import datetime, timedelta
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-from gallery_dl import extractor, util # noqa E402
+from gallery_dl import extractor, util, dt, config # noqa E402
from gallery_dl.extractor import mastodon # noqa E402
from gallery_dl.extractor.common import Extractor, Message # noqa E402
from gallery_dl.extractor.directlink import DirectlinkExtractor # noqa E402
@@ -40,7 +39,7 @@ class FakeExtractor(Extractor):
pattern = "fake:"
def items(self):
- yield Message.Version, 1
+ yield Message.Noop
yield Message.Url, "text:foobar", {}
@@ -233,8 +232,8 @@ class TestExtractorWait(unittest.TestCase):
def test_wait_until_datetime(self):
extr = extractor.find("generic:https://example.org/")
- until = util.datetime_utcnow() + timedelta(seconds=5)
- until_local = datetime.now() + timedelta(seconds=5)
+ until = dt.now() + dt.timedelta(seconds=5)
+ until_local = dt.datetime.now() + dt.timedelta(seconds=5)
if not until.microsecond:
until = until.replace(microsecond=until_local.microsecond)
@@ -251,8 +250,8 @@ class TestExtractorWait(unittest.TestCase):
self._assert_isotime(calls[0][1][1], until_local)
def _assert_isotime(self, output, until):
- if not isinstance(until, datetime):
- until = datetime.fromtimestamp(until)
+ if not isinstance(until, dt.datetime):
+ until = dt.datetime.fromtimestamp(until)
o = self._isotime_to_seconds(output)
u = self._isotime_to_seconds(until.time().isoformat()[:8])
self.assertLessEqual(o-u, 1.0)
@@ -262,6 +261,79 @@ class TestExtractorWait(unittest.TestCase):
return int(parts[0]) * 3600 + int(parts[1]) * 60 + int(parts[2])
+class TextExtractorCommonDateminmax(unittest.TestCase):
+
+ def setUp(self):
+ config.clear()
+
+ tearDown = setUp
+
+ def test_date_min_max_default(self):
+ extr = extractor.find("generic:https://example.org/")
+
+ dmin, dmax = extr._get_date_min_max()
+ self.assertEqual(dmin, None)
+ self.assertEqual(dmax, None)
+
+ dmin, dmax = extr._get_date_min_max(..., -1)
+ self.assertEqual(dmin, ...)
+ self.assertEqual(dmax, -1)
+
+ def test_date_min_max_timestamp(self):
+ extr = extractor.find("generic:https://example.org/")
+ config.set((), "date-min", 1262304000)
+ config.set((), "date-max", 1262304000.123)
+
+ dmin, dmax = extr._get_date_min_max()
+ self.assertEqual(dmin, 1262304000)
+ self.assertEqual(dmax, 1262304000.123)
+
+ def test_date_min_max_iso(self):
+ extr = extractor.find("generic:https://example.org/")
+ config.set((), "date-min", "2010-01-01")
+ config.set((), "date-max", "2010-01-01T00:01:03")
+
+ dmin, dmax = extr._get_date_min_max()
+ self.assertEqual(dmin, 1262304000)
+ self.assertEqual(dmax, 1262304063)
+
+ def test_date_min_max_iso_invalid(self):
+ extr = extractor.find("generic:https://example.org/")
+ config.set((), "date-min", "2010-01-01")
+ config.set((), "date-max", "2010-01")
+
+ with self.assertLogs() as log_info:
+ dmin, dmax = extr._get_date_min_max()
+ self.assertEqual(dmin, 1262304000)
+ self.assertEqual(dmax, None)
+
+ self.assertEqual(len(log_info.output), 1)
+ self.assertEqual(
+ log_info.output[0],
+ "WARNING:generic:Unable to parse 'date-max': "
+ "Invalid isoformat string '2010-01'")
+
+ def test_date_min_max_fmt(self):
+ extr = extractor.find("generic:https://example.org/")
+ config.set((), "date-format", "%B %d %Y")
+ config.set((), "date-min", "January 01 2010")
+ config.set((), "date-max", "August 18 2022")
+
+ dmin, dmax = extr._get_date_min_max()
+ self.assertEqual(dmin, 1262304000)
+ self.assertEqual(dmax, 1660780800)
+
+ def test_date_min_max_mix(self):
+ extr = extractor.find("generic:https://example.org/")
+ config.set((), "date-format", "%B %d %Y")
+ config.set((), "date-min", "January 01 2010")
+ config.set((), "date-max", 1262304061)
+
+ dmin, dmax = extr._get_date_min_max()
+ self.assertEqual(dmin, 1262304000)
+ self.assertEqual(dmax, 1262304061)
+
+
class TextExtractorOAuth(unittest.TestCase):
def test_oauth1(self):