diff options
Diffstat (limited to 'python/tests/import_ingest.py')
-rw-r--r-- | python/tests/import_ingest.py | 45 |
1 files changed, 39 insertions, 6 deletions
diff --git a/python/tests/import_ingest.py b/python/tests/import_ingest.py index 5089d99e..02486de6 100644 --- a/python/tests/import_ingest.py +++ b/python/tests/import_ingest.py @@ -2,7 +2,7 @@ import json import pytest from fatcat_tools.importers import IngestFileResultImporter, JsonLinePusher -from fixtures import api +from fixtures import * @pytest.fixture(scope="function") @@ -14,15 +14,14 @@ def test_ingest_importer_basic(ingest_importer): with open('tests/files/example_ingest.json', 'r') as f: JsonLinePusher(ingest_importer, f).run() -@pytest.mark.skip("tests not flushed out yet") def test_ingest_importer(ingest_importer): last_index = ingest_importer.api.get_changelog(limit=1)[0].index with open('tests/files/example_ingest.json', 'r') as f: ingest_importer.bezerk_mode = True counts = JsonLinePusher(ingest_importer, f).run() - assert counts['insert'] == 2 + assert counts['insert'] == 1 assert counts['exists'] == 0 - assert counts['skip'] == 11 + assert counts['skip'] == 1 # fetch most recent editgroup change = ingest_importer.api.get_changelog_entry(index=last_index+1) @@ -38,8 +37,42 @@ def test_ingest_importer(ingest_importer): ingest_importer.bezerk_mode = False counts = JsonLinePusher(ingest_importer, f).run() assert counts['insert'] == 0 - assert counts['exists'] == 2 - assert counts['skip'] == 11 + assert counts['exists'] == 1 + assert counts['skip'] == 1 + +def test_ingest_importer_stage(ingest_importer, api): + """ + Tests that ingest importer correctly handles release stage matching + """ + test_table = [ + dict(request_stage=None, release_stage=None, status="insert"), + dict(request_stage="published", release_stage=None, status="insert"), + dict(request_stage=None, release_stage="draft", status="insert"), + dict(request_stage="published", release_stage="published", status="insert"), + dict(request_stage="draft", release_stage="published", status="skip-release-stage"), + dict(request_stage="published", release_stage="draft", status="skip-release-stage"), + ] + ingest_importer.bezerk_mode = True + with open('tests/files/example_ingest.json', 'r') as f: + raw = json.loads(f.readline()) + for row in test_table: + print(row) + + # set dummy record stage + eg = quick_eg(api) + r1 = api.lookup_release(doi="10.123/abc") + r1.release_stage = row['release_stage'] + c1 = api.update_release(eg.editgroup_id, r1.ident, r1) + api.accept_editgroup(eg.editgroup_id) + + # set ingest request stage + raw['request']['release_stage'] = row['request_stage'] + ingest_importer.reset() + ingest_importer.push_record(raw) + counts = ingest_importer.finish() + print(counts) + assert counts["total"] == 1 + assert counts[row['status']] == 1 def test_ingest_dict_parse(ingest_importer): with open('tests/files/example_ingest.json', 'r') as f: |