aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2022-07-16 00:39:25 -0400
committerLibravatarUnit 193 <unit193@unit193.net>2022-07-16 00:39:25 -0400
commitae2a0f5622beaa6f402526f8a7b939419283a090 (patch)
treedf1ee84f90167211ae4817606fe6e7380abb67b1 /test
parentce35450b5308adab049c5bd99095986d4c607027 (diff)
New upstream version 1.22.4.upstream/1.22.4
Diffstat (limited to 'test')
-rw-r--r--test/test_formatter.py60
-rw-r--r--test/test_postprocessor.py29
2 files changed, 72 insertions, 17 deletions
diff --git a/test/test_formatter.py b/test/test_formatter.py
index 5b8ca0a..aec091a 100644
--- a/test/test_formatter.py
+++ b/test/test_formatter.py
@@ -9,12 +9,13 @@
import os
import sys
+import time
import unittest
import datetime
import tempfile
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-from gallery_dl import formatter # noqa E402
+from gallery_dl import formatter, text, util # noqa E402
class TestFormatter(unittest.TestCase):
@@ -98,6 +99,14 @@ class TestFormatter(unittest.TestCase):
self._run_test("{missing[key]}", replacement, default)
self._run_test("{missing:?a//}", "a" + default, default)
+ def test_fmt_func(self):
+ self._run_test("{t}" , self.kwdict["t"] , None, int)
+ self._run_test("{t}" , self.kwdict["t"] , None, util.identity)
+ self._run_test("{dt}", self.kwdict["dt"], None, util.identity)
+ self._run_test("{ds}", self.kwdict["dt"], None, text.parse_datetime)
+ self._run_test("{ds:D%Y-%m-%dT%H:%M:%S%z}", self.kwdict["dt"],
+ None, util.identity)
+
def test_alternative(self):
self._run_test("{a|z}" , "hElLo wOrLd")
self._run_test("{z|a}" , "hElLo wOrLd")
@@ -184,6 +193,31 @@ class TestFormatter(unittest.TestCase):
self._run_test("{ds:D%Y}", "2010-01-01T01:00:00+0100")
self._run_test("{l:D%Y}", "None")
+ def test_offset(self):
+ self._run_test("{dt:O 01:00}", "2010-01-01 01:00:00")
+ self._run_test("{dt:O+02:00}", "2010-01-01 02:00:00")
+ self._run_test("{dt:O-03:45}", "2009-12-31 20:15:00")
+
+ self._run_test("{dt:O12}", "2010-01-01 12:00:00")
+ self._run_test("{dt:O-24}", "2009-12-31 00:00:00")
+
+ self._run_test("{ds:D%Y-%m-%dT%H:%M:%S%z/O1}", "2010-01-01 01:00:00")
+ self._run_test("{t!d:O2}", "2010-01-01 02:00:00")
+
+ orig_daylight = time.daylight
+ orig_timezone = time.timezone
+ orig_altzone = time.altzone
+ try:
+ time.daylight = False
+ time.timezone = -3600
+ self._run_test("{dt:O}", "2010-01-01 01:00:00")
+ time.timezone = 7200
+ self._run_test("{dt:Olocal}", "2009-12-31 22:00:00")
+ finally:
+ time.daylight = orig_daylight
+ time.timezone = orig_timezone
+ time.altzone = orig_altzone
+
def test_chain_special(self):
# multiple replacements
self._run_test("{a:Rh/C/RE/e/RL/l/}", "Cello wOrld")
@@ -202,6 +236,26 @@ class TestFormatter(unittest.TestCase):
# parse and format datetime
self._run_test("{ds:D%Y-%m-%dT%H:%M:%S%z/%Y%m%d}", "20100101")
+ def test_separator(self):
+ orig_separator = formatter._SEPARATOR
+ try:
+ formatter._SEPARATOR = "|"
+ self._run_test("{a:Rh|C|RE|e|RL|l|}", "Cello wOrld")
+ self._run_test("{d[b]!s:R1|Q|R2|A|R0|Y|}", "Y")
+
+ formatter._SEPARATOR = "##"
+ self._run_test("{l:J-##Rb##E##}", "a-E-c")
+ self._run_test("{l:J-##[1:-1]}", "-b-")
+
+ formatter._SEPARATOR = "\0"
+ self._run_test("{d[a]:?<\0>\0L1\0too long\0}", "<too long>")
+ self._run_test("{d[c]:?<\0>\0L5\0too long\0}", "")
+
+ formatter._SEPARATOR = "?"
+ self._run_test("{ds:D%Y-%m-%dT%H:%M:%S%z?%Y%m%d}", "20100101")
+ finally:
+ formatter._SEPARATOR = orig_separator
+
def test_globals_env(self):
os.environ["FORMATTER_TEST"] = value = self.kwdict["a"]
@@ -316,8 +370,8 @@ def noarg():
with self.assertRaises(TypeError):
self.assertEqual(fmt3.format_map(self.kwdict), "")
- def _run_test(self, format_string, result, default=None):
- fmt = formatter.parse(format_string, default)
+ def _run_test(self, format_string, result, default=None, fmt=format):
+ fmt = formatter.parse(format_string, default, fmt)
output = fmt.format_map(self.kwdict)
self.assertEqual(output, result, format_string)
diff --git a/test/test_postprocessor.py b/test/test_postprocessor.py
index c382c0e..7a216bb 100644
--- a/test/test_postprocessor.py
+++ b/test/test_postprocessor.py
@@ -350,10 +350,6 @@ class MetadataTest(BasePostprocessorTest):
class MtimeTest(BasePostprocessorTest):
- def test_mtime_default(self):
- pp = self._create()
- self.assertEqual(pp.key, "date")
-
def test_mtime_datetime(self):
self._create(None, {"date": datetime(1980, 1, 1)})
self._trigger()
@@ -364,31 +360,36 @@ class MtimeTest(BasePostprocessorTest):
self._trigger()
self.assertEqual(self.pathfmt.kwdict["_mtime"], 315532800)
- def test_mtime_custom(self):
+ def test_mtime_key(self):
self._create({"key": "foo"}, {"foo": 315532800})
self._trigger()
self.assertEqual(self.pathfmt.kwdict["_mtime"], 315532800)
+ def test_mtime_value(self):
+ self._create({"value": "{foo}"}, {"foo": 315532800})
+ self._trigger()
+ self.assertEqual(self.pathfmt.kwdict["_mtime"], 315532800)
+
class ZipTest(BasePostprocessorTest):
def test_zip_default(self):
pp = self._create()
- self.assertEqual(self.job.hooks["file"][0], pp.write)
- self.assertEqual(pp.path, self.pathfmt.realdirectory)
+ self.assertEqual(self.job.hooks["file"][0], pp.write_fast)
+ self.assertEqual(pp.path, self.pathfmt.realdirectory[:-1])
self.assertEqual(pp.delete, True)
self.assertEqual(pp.args, (
- pp.path[:-1] + ".zip", "a", zipfile.ZIP_STORED, True,
+ pp.path + ".zip", "a", zipfile.ZIP_STORED, True,
))
self.assertTrue(pp.args[0].endswith("/test.zip"))
def test_zip_safe(self):
pp = self._create({"mode": "safe"})
self.assertEqual(self.job.hooks["file"][0], pp.write_safe)
- self.assertEqual(pp.path, self.pathfmt.realdirectory)
+ self.assertEqual(pp.path, self.pathfmt.realdirectory[:-1])
self.assertEqual(pp.delete, True)
self.assertEqual(pp.args, (
- pp.path[:-1] + ".zip", "a", zipfile.ZIP_STORED, True,
+ pp.path + ".zip", "a", zipfile.ZIP_STORED, True,
))
self.assertTrue(pp.args[0].endswith("/test.zip"))
@@ -400,7 +401,7 @@ class ZipTest(BasePostprocessorTest):
})
self.assertEqual(pp.delete, False)
self.assertEqual(pp.args, (
- pp.path[:-1] + ".cbz", "a", zipfile.ZIP_DEFLATED, True,
+ pp.path + ".cbz", "a", zipfile.ZIP_DEFLATED, True,
))
self.assertTrue(pp.args[0].endswith("/test.cbz"))
@@ -439,9 +440,9 @@ class ZipTest(BasePostprocessorTest):
with zipfile.ZipFile(pp.zfile.filename) as file:
nti = file.NameToInfo
self.assertEqual(len(pp.zfile.NameToInfo), 3)
- self.assertIn("file0.ext", pp.zfile.NameToInfo)
- self.assertIn("file1.ext", pp.zfile.NameToInfo)
- self.assertIn("file2.ext", pp.zfile.NameToInfo)
+ self.assertIn("file0.ext", nti)
+ self.assertIn("file1.ext", nti)
+ self.assertIn("file2.ext", nti)
os.unlink(pp.zfile.filename)