summaryrefslogtreecommitdiffstats
path: root/scripts/build_testresult_db.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2019-07-02 04:33:45 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2019-07-02 04:33:45 -0400
commit195c45911e79c33cf0bb986721365fb06df5a153 (patch)
treeac0c9b6ef40bea7aa7ab0c5c3cb500eb510668fa /scripts/build_testresult_db.py
Import Upstream version 1.8.7upstream/1.8.7
Diffstat (limited to 'scripts/build_testresult_db.py')
-rwxr-xr-xscripts/build_testresult_db.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/scripts/build_testresult_db.py b/scripts/build_testresult_db.py
new file mode 100755
index 0000000..fda9f64
--- /dev/null
+++ b/scripts/build_testresult_db.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+"""Collect results of extractor unit tests"""
+
+import sys
+import os.path
+import datetime
+
+import util
+from gallery_dl import extractor, job, config
+from test.test_results import setup_test_config
+
+
+# filter test cases
+
+tests = [
+ (idx, extr, url, result)
+
+ for extr in extractor.extractors()
+ if hasattr(extr, "test") and extr.test
+ if len(sys.argv) <= 1 or extr.category in sys.argv
+
+ for idx, (url, result) in enumerate(extr._get_tests())
+ if result
+]
+
+
+# setup target directory
+
+path = util.path("archive", "testdb", str(datetime.date.today()))
+os.makedirs(path, exist_ok=True)
+
+
+for idx, extr, url, result in tests:
+
+ # filename
+ name = "{}-{}-{}.json".format(extr.category, extr.subcategory, idx)
+ print(name)
+
+ # config values
+ setup_test_config()
+
+ if "options" in result:
+ for key, value in result["options"]:
+ config.set(key.split("."), value)
+ if "range" in result:
+ config.set(("image-range",), result["range"])
+ config.set(("chapter-range",), result["range"])
+
+ # write test data
+ try:
+ with open(os.path.join(path, name), "w") as outfile:
+ job.DataJob(url, file=outfile, ensure_ascii=False).run()
+ except KeyboardInterrupt:
+ sys.exit()