Skip to content

Commit 9294d0a

Browse files
committed
Add good case tests for cli
1 parent a42c315 commit 9294d0a

1 file changed

Lines changed: 55 additions & 1 deletion

File tree

test/hermes_test/test_cli.py

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ def test_hermes_harvest(hermes_env):
4646
assert "Plugin foo not found" in stdout_res
4747

4848

49-
@pytest.mark.dev
5049
def test_hermes_harvest_no_plugin(hermes_env):
5150
hermes_env['hermes.toml'] = "[harvest]\nsources = []\n"
5251
with hermes_env:
@@ -65,5 +64,60 @@ def test_hermes_process(hermes_env):
6564

6665
with hermes_env:
6766
result = hermes_env.run("process")
67+
test_dir = hermes_env.test_path
68+
assert len(os.listdir(test_dir / ".hermes/process/result/")) == 3
69+
output_file = test_dir / ".hermes/process/result/codemeta.json"
70+
assert output_file.exists()
71+
72+
assert result.returncode == 0
73+
74+
75+
def test_hermes_curate(hermes_env, tmpdir):
76+
hermes_env['hermes.toml'] = "[curate]\nplugin = \"pass_curate\""
77+
hermes_env['.hermes/process/result/codemeta.json'] = "{\"@context\": [\"https://doi.org/10.5063/schema/codemeta-2.0\"], \"name\": \"hermes\", \"version\": \"0.9.0\"}"
78+
79+
with hermes_env:
80+
result = hermes_env.run("curate")
81+
test_dir = hermes_env.test_path
82+
assert len(os.listdir(test_dir / ".hermes/curate/result/")) == 3
83+
output_file = test_dir / ".hermes/curate/result/codemeta.json"
84+
85+
# One small change and it breaks, so maybe adapt it to a simpler includes test
86+
content = "{\"@context\": [\"https://doi.org/10.5063/schema/codemeta-2.0\", {\"schema\": " \
87+
"\"http://schema.org/\", \"prov\": \"http://www.w3.org/ns/prov#\", \"hermes-rt\": " \
88+
"\"https://schema.software-metadata.pub/hermes-runtime/1.0/\", \"hermes\": " \
89+
"\"https://schema.software-metadata.pub/hermes-content/1.0/\"}], \"name\": \"hermes\"," \
90+
" \"version\": \"0.9.0\"}"
91+
assert output_file.read_text() == content
92+
93+
assert result.returncode == 0
94+
95+
96+
def test_hermes_deposit(hermes_env):
97+
hermes_env['hermes.toml'] = "[deposit]\ntarget = \"file\""
98+
hermes_env['.hermes/curate/result/codemeta.json'] = "{}"
99+
100+
with hermes_env:
101+
result = hermes_env.run("deposit")
102+
test_dir = hermes_env.test_path
103+
assert len(os.listdir(test_dir / ".hermes/deposit/file/")) == 2
104+
output_file = test_dir / "hermes.json"
105+
assert "@context" in output_file.read_text()
106+
107+
assert result.returncode == 0
108+
109+
110+
def test_hermes_postprocess(hermes_env):
111+
hermes_env['hermes.toml'] = "[postprocess]\nrun = [ \"config_invenio_rdm_record_id\"] \n" \
112+
"[deposit.invenio_rdm]\ncommunities = []\n"
113+
hermes_env['.hermes/deposit/invenio_rdm/result.json'] = "{\"record_id\": 1234}"
114+
115+
with hermes_env:
116+
result = hermes_env.run("postprocess")
117+
#log = hermes_env.test_path / "hermes.log"
118+
#print(log.read_text())
119+
output_file = hermes_env.test_path / "hermes.toml"
120+
assert output_file.read_text() == "[postprocess]\nrun = [ \"config_invenio_rdm_record_id\"] \n" \
121+
"[deposit.invenio_rdm]\ncommunities = []\nrecord_id = 1234\n"
68122

69123
assert result.returncode == 0

0 commit comments

Comments
 (0)