def test_invalid_config_file(self): config_path = sample_config_path('missing_meuhconfig_var.py') args = _str_to_args("./meuh {config} {dwca}".format(config=config_path, dwca=self.SAMPLE_ARCHIVE_PATH)) err_stream = StringIO() out_stream = StringIO() with self.assertRaises(BadConfigFileException): main(args, out=out_stream, err=err_stream)
def test_default_format_json(self): """Ensure that JSON is the default report format""" err_stream = StringIO() out_stream = StringIO() config_file = sample_config_path('valid.py') # Provide both args = _str_to_args("./meuh {config} {dwca}".format(config=config_file, dwca=self.SAMPLE_ARCHIVE_PATH)) main(args, out=out_stream, err=err_stream) json.loads(out_stream.getvalue()) # Will raise ValueError if cannot parse JSON
def test_output_format_json(self): """Ensure that json is produced when asked.""" # TODO: Make similar tests with other formats err_stream = StringIO() out_stream = StringIO() config_file = sample_config_path('valid.py') # Provide both args = _str_to_args("./meuh --report-format json {config} {dwca}".format(config=config_file, dwca=self.SAMPLE_ARCHIVE_PATH)) main(args, out=out_stream, err=err_stream) json.loads(out_stream.getvalue()) # Will raise ValueError if cannot parse JSON
def test_minimal_args_correct(self): """Check that argument parsing succeed if we get two readable files.""" err_stream = StringIO() out_stream = StringIO() config_file = sample_config_path('valid.py') # Provide both args = _str_to_args("./meuh {config} {dwca}".format(config=config_file, dwca=self.SAMPLE_ARCHIVE_PATH)) rc = main(args, out=out_stream, err=err_stream) self.assertTrue("usage: meuh" not in err_stream.getvalue()) self.assertEqual(0, rc)
def test_engine_output_stderr(self): err_stream = StringIO() out_stream = StringIO() config_file = sample_config_path('valid.py') # Provide both args = _str_to_args("./meuh {config} {dwca}".format(config=config_file, dwca=self.SAMPLE_ARCHIVE_PATH)) main(args, out=out_stream, err=err_stream) err = err_stream.getvalue() out = out_stream.getvalue() self.assertTrue("Engine running..." in err) self.assertTrue("Engine finished execution." in err) self.assertFalse("Engine running..." in out) self.assertFalse("Engine finished execution." in out)
def test_report_on_stdout(self): """Ensure the report is printed on stdout and not on stderr.""" err_stream = StringIO() out_stream = StringIO() config_file = sample_config_path('valid.py') # Provide both args = _str_to_args("./meuh --report-format json {config} {dwca}".format(config=config_file, dwca=self.SAMPLE_ARCHIVE_PATH)) main(args, out=out_stream, err=err_stream) err = err_stream.getvalue() out = out_stream.getvalue() report_excerpt = '{"context": {"execution_started_at":' self.assertTrue(report_excerpt in out) self.assertFalse(report_excerpt in err)