aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2019-11-10 22:14:10 -0500
committerLibravatarUnit 193 <unit193@ubuntu.com>2019-11-10 22:14:10 -0500
commit0c73e982fa596da07f23b377621ab894a9e64884 (patch)
tree96f6a40a5656c15a2ec7217a8a1efcff5827bcbb /test
parent40f5fe6edef268632d3bc484e85e5b37bad67bff (diff)
New upstream version 1.11.1upstream/1.11.1
Diffstat (limited to 'test')
-rw-r--r--test/__init__.py0
-rw-r--r--test/test_extractor.py16
-rw-r--r--test/test_postprocessor.py4
-rw-r--r--test/test_results.py100
-rw-r--r--test/test_util.py10
5 files changed, 62 insertions, 68 deletions
diff --git a/test/__init__.py b/test/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/test/__init__.py
+++ /dev/null
diff --git a/test/test_extractor.py b/test/test_extractor.py
index fa0709b..2555b58 100644
--- a/test/test_extractor.py
+++ b/test/test_extractor.py
@@ -157,24 +157,12 @@ class TestExtractor(unittest.TestCase):
def capitalize(c):
if "-" in c:
return string.capwords(c.replace("-", " ")).replace(" ", "")
- if "." in c:
- c = c.replace(".", "")
return c.capitalize()
- mapping = {
- "2chan" : "futaba",
- "3dbooru": "threedeebooru",
- "4chan" : "fourchan",
- "4plebs" : "fourplebs",
- "8chan" : "infinitychan",
- "oauth" : None,
- }
-
for extr in extractor.extractors():
- category = mapping.get(extr.category, extr.category)
- if category:
+ if extr.category not in ("", "oauth"):
expected = "{}{}Extractor".format(
- capitalize(category),
+ capitalize(extr.category),
capitalize(extr.subcategory),
)
if expected[0].isdigit():
diff --git a/test/test_postprocessor.py b/test/test_postprocessor.py
index 78b9838..0ab89db 100644
--- a/test/test_postprocessor.py
+++ b/test/test_postprocessor.py
@@ -327,7 +327,7 @@ class ZipTest(BasePostprocessorTest):
self.assertEqual(len(pp.zfile.NameToInfo), 3)
# close file
- pp.finalize()
+ pp.run_final(self.pathfmt, 0)
# reopen to check persistence
with zipfile.ZipFile(pp.zfile.filename) as file:
@@ -360,7 +360,7 @@ class ZipTest(BasePostprocessorTest):
pp.prepare(self.pathfmt)
pp.run(self.pathfmt)
- pp.finalize()
+ pp.run_final(self.pathfmt, 0)
self.assertEqual(pp.zfile.write.call_count, 3)
for call in pp.zfile.write.call_args_list:
diff --git a/test/test_results.py b/test/test_results.py
index bde3af5..6d628c3 100644
--- a/test/test_results.py
+++ b/test/test_results.py
@@ -26,8 +26,10 @@ TRAVIS_SKIP = {
# temporary issues, etc.
BROKEN = {
- "8chan",
+ "hentaifox",
+ "livedoor",
"mangapark",
+ "yaplog",
}
@@ -84,47 +86,47 @@ class TestExtractorResults(unittest.TestCase):
raise
# test archive-id uniqueness
- self.assertEqual(len(set(tjob.list_archive)), len(tjob.list_archive))
+ self.assertEqual(len(set(tjob.archive_list)), len(tjob.archive_list))
if tjob.queue:
# test '_extractor' entries
- for url, kwdict in zip(tjob.list_url, tjob.list_keyword):
+ for url, kwdict in zip(tjob.url_list, tjob.kwdict_list):
if "_extractor" in kwdict:
extr = kwdict["_extractor"].from_url(url)
self.assertIsInstance(extr, kwdict["_extractor"])
self.assertEqual(extr.url, url)
else:
# test 'extension' entries
- for kwdict in tjob.list_keyword:
+ for kwdict in tjob.kwdict_list:
self.assertIn("extension", kwdict)
# test extraction results
if "url" in result:
- self.assertEqual(result["url"], tjob.hash_url.hexdigest())
+ self.assertEqual(result["url"], tjob.url_hash.hexdigest())
if "content" in result:
- self.assertEqual(result["content"], tjob.hash_content.hexdigest())
+ self.assertEqual(result["content"], tjob.content_hash.hexdigest())
if "keyword" in result:
- keyword = result["keyword"]
- if isinstance(keyword, dict):
- for kwdict in tjob.list_keyword:
- self._test_kwdict(kwdict, keyword)
+ expected = result["keyword"]
+ if isinstance(expected, dict):
+ for kwdict in tjob.kwdict_list:
+ self._test_kwdict(kwdict, expected)
else: # assume SHA1 hash
- self.assertEqual(keyword, tjob.hash_keyword.hexdigest())
+ self.assertEqual(expected, tjob.kwdict_hash.hexdigest())
if "count" in result:
count = result["count"]
if isinstance(count, str):
self.assertRegex(count, r"^ *(==|!=|<|<=|>|>=) *\d+ *$")
- expr = "{} {}".format(len(tjob.list_url), count)
+ expr = "{} {}".format(len(tjob.url_list), count)
self.assertTrue(eval(expr), msg=expr)
else: # assume integer
- self.assertEqual(len(tjob.list_url), count)
+ self.assertEqual(len(tjob.url_list), count)
if "pattern" in result:
- self.assertGreater(len(tjob.list_url), 0)
- for url in tjob.list_url:
+ self.assertGreater(len(tjob.url_list), 0)
+ for url in tjob.url_list:
self.assertRegex(url, result["pattern"])
def _test_kwdict(self, kwdict, tests):
@@ -158,58 +160,60 @@ class ResultJob(job.DownloadJob):
job.DownloadJob.__init__(self, url, parent)
self.queue = False
self.content = content
- self.list_url = []
- self.list_keyword = []
- self.list_archive = []
- self.hash_url = hashlib.sha1()
- self.hash_keyword = hashlib.sha1()
- self.hash_archive = hashlib.sha1()
- self.hash_content = hashlib.sha1()
+
+ self.url_list = []
+ self.url_hash = hashlib.sha1()
+ self.kwdict_list = []
+ self.kwdict_hash = hashlib.sha1()
+ self.archive_list = []
+ self.archive_hash = hashlib.sha1()
+ self.content_hash = hashlib.sha1()
if content:
- self.fileobj = TestPathfmt(self.hash_content)
+ self.fileobj = TestPathfmt(self.content_hash)
self.format_directory = TestFormatter(
- "".join(self.extractor.directory_fmt))
- self.format_filename = TestFormatter(self.extractor.filename_fmt)
+ "".join(self.extractor.directory_fmt)).format_map
+ self.format_filename = TestFormatter(
+ self.extractor.filename_fmt).format_map
def run(self):
for msg in self.extractor:
self.dispatch(msg)
- def handle_url(self, url, keywords, fallback=None):
- self.update_url(url)
- self.update_keyword(keywords)
- self.update_archive(keywords)
- self.update_content(url)
- self.format_filename.format_map(keywords)
+ def handle_url(self, url, kwdict, fallback=None):
+ self._update_url(url)
+ self._update_kwdict(kwdict)
+ self._update_archive(kwdict)
+ self._update_content(url)
+ self.format_filename(kwdict)
- def handle_directory(self, keywords):
- self.update_keyword(keywords, False)
- self.format_directory.format_map(keywords)
+ def handle_directory(self, kwdict):
+ self._update_kwdict(kwdict, False)
+ self.format_directory(kwdict)
- def handle_queue(self, url, keywords):
+ def handle_queue(self, url, kwdict):
self.queue = True
- self.update_url(url)
- self.update_keyword(keywords)
+ self._update_url(url)
+ self._update_kwdict(kwdict)
- def update_url(self, url):
- self.list_url.append(url)
- self.hash_url.update(url.encode())
+ def _update_url(self, url):
+ self.url_list.append(url)
+ self.url_hash.update(url.encode())
- def update_keyword(self, kwdict, to_list=True):
+ def _update_kwdict(self, kwdict, to_list=True):
if to_list:
- self.list_keyword.append(kwdict)
+ self.kwdict_list.append(kwdict.copy())
kwdict = self._filter(kwdict)
- self.hash_keyword.update(
+ self.kwdict_hash.update(
json.dumps(kwdict, sort_keys=True, default=str).encode())
- def update_archive(self, kwdict):
+ def _update_archive(self, kwdict):
archive_id = self.extractor.archive_fmt.format_map(kwdict)
- self.list_archive.append(archive_id)
- self.hash_archive.update(archive_id.encode())
+ self.archive_list.append(archive_id)
+ self.archive_hash.update(archive_id.encode())
- def update_content(self, url):
+ def _update_content(self, url):
if self.content:
scheme = url.partition(":")[0]
self.get_downloader(scheme).download(url, self.fileobj)
@@ -285,8 +289,10 @@ def setup_test_config():
config.set(("extractor", "password"), name)
config.set(("extractor", "nijie" , "username"), email)
config.set(("extractor", "seiga" , "username"), email)
+
config.set(("extractor", "danbooru" , "username"), None)
config.set(("extractor", "instagram", "username"), None)
+ config.set(("extractor", "imgur" , "username"), None)
config.set(("extractor", "twitter" , "username"), None)
config.set(("extractor", "mangoxo" , "username"), "LiQiang3")
diff --git a/test/test_util.py b/test/test_util.py
index 815b2d8..9b252a3 100644
--- a/test/test_util.py
+++ b/test/test_util.py
@@ -313,17 +313,17 @@ class TestOther(unittest.TestCase):
util.advance(util.advance(items, 1), 2), range(3, 5))
def test_raises(self):
- func = util.raises(Exception())
+ func = util.raises(Exception)
with self.assertRaises(Exception):
func()
- func = util.raises(ValueError(1))
+ func = util.raises(ValueError)
with self.assertRaises(ValueError):
- func()
+ func(1)
with self.assertRaises(ValueError):
- func()
+ func(2)
with self.assertRaises(ValueError):
- func()
+ func(3)
def test_combine_dict(self):
self.assertEqual(