@@ -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
5049def test_hermes_harvest_no_plugin (hermes_env ):
5150 hermes_env ['hermes.toml' ] = "[harvest]\n sources = []\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]\n plugin = \" 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]\n target = \" 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]\n run = [ \" config_invenio_rdm_record_id\" ] \n " \
112+ "[deposit.invenio_rdm]\n communities = []\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]\n run = [ \" config_invenio_rdm_record_id\" ] \n " \
121+ "[deposit.invenio_rdm]\n communities = []\n record_id = 1234\n "
68122
69123 assert result .returncode == 0
0 commit comments