aboutsummaryrefslogtreecommitdiffstats
path: root/python/tests
diff options
context:
space:
mode:
Diffstat (limited to 'python/tests')
-rw-r--r--python/tests/files/example_matched.json3
-rw-r--r--python/tests/matched_importer.py32
2 files changed, 35 insertions, 0 deletions
diff --git a/python/tests/files/example_matched.json b/python/tests/files/example_matched.json
new file mode 100644
index 00000000..79db1296
--- /dev/null
+++ b/python/tests/files/example_matched.json
@@ -0,0 +1,3 @@
+{ "dois": ["10.123/abc"], "sha1": "00242a192acc258bdfdb151943419437f440c313", "md5": "f4de91152c7ab9fdc2a128f962faebff", "sha256": "ffc1005680cb620eec4c913437dfabbf311b535cfe16cbaeb2faec1f92afc362", "size": 255629, "cdx": { "dt": "20170227164644", "url": "http://journals.plos.org/plosmedicine/article/file?id=10.1371/journal.pmed.0020124&type=printable" }, "mimetype": "application/pdf" }
+{ "dois": ["10.123/abc"], "sha1": "3f242a192acc258bdfdb151943419437f440c313", "md5": "f4de91152c7ab9fdc2a128f962faebff", "sha256": "ffc1005680cb620eec4c913437dfabbf311b535cfe16cbaeb2faec1f92afc362", "size": 255629, "cdx": { "dt": "20170227164644", "url": "http://journals.plos.org/plosmedicine/article/file?id=10.1371/journal.pmed.0020124&type=printable" }, "mimetype": "application/pdf" }
+{ "dois": ["10.456/1231123"], "sha1": "000000000000258bdfdb151943419437f440c313", "md5": "000000000000b9fdc2a128f962faebff", "sha256": "000000000000620eec4c913437dfabbf311b535cfe16cbaeb2faec1f92afc362", "size": 123, "cdx": { "dt": "20000000164644", "url": "http://no-plos.org/plosme" }, "mimetype": "application/txt" }
diff --git a/python/tests/matched_importer.py b/python/tests/matched_importer.py
new file mode 100644
index 00000000..9cc6aa32
--- /dev/null
+++ b/python/tests/matched_importer.py
@@ -0,0 +1,32 @@
+
+import json
+import pytest
+from fatcat.matched_importer import FatcatMatchedImporter
+
+
+@pytest.fixture(scope="function")
+def matched_importer():
+ yield FatcatMatchedImporter("http://localhost:9411/v0")
+
+# TODO: use API to check that entities actually created...
+def test_matched_importer_batch(matched_importer):
+ with open('tests/files/example_matched.json', 'r') as f:
+ matched_importer.process_batch(f)
+
+def test_matched_importer(matched_importer):
+ with open('tests/files/example_matched.json', 'r') as f:
+ matched_importer.process_source(f)
+
+def test_matched_dict_parse(matched_importer):
+ with open('tests/files/example_matched.json', 'r') as f:
+ raw = json.loads(f.readline())
+ f = matched_importer.parse_matched_dict(raw)
+ assert f.sha1 == "00242a192acc258bdfdb151943419437f440c313"
+ assert f.md5 == "f4de91152c7ab9fdc2a128f962faebff"
+ assert f.mimetype == "application/pdf"
+ assert f.size == 255629
+ assert f.urls[1].url.startswith("http://journals.plos.org")
+ assert f.urls[1].rel == "web"
+ assert f.urls[0].url.startswith("https://web.archive.org/")
+ assert f.urls[0].rel == "webarchive"
+ assert len(f.releases) == 1