def test_named_resources(): exposed = [ getattr(resources, name) for name in dir(resources) if name.startswith("RESOURCES") ] for resource_name in exposed: assert resources.exists(resource_name) assert resources.isdir(resource_name) assert resources.listdir(resource_name)
key, value = item.split("=") match = variable_expansion_pattern.match(value) if match: varname, default_value = match.groups() value = devel_environ.get(varname, default_value) container_environ[key] = value return container_environ @pytest.mark.parametrize( "configfile", [ str(n) for n in resources.listdir(CONFIG_DIR) if n.endswith(("yaml", "yml")) ], ) def test_config_files(configfile, container_environ, capsys): parser = setup_parser(argparse.ArgumentParser("test-parser")) with mock.patch("os.environ", container_environ): cmd = ["-c", configfile] try: config = parse(cmd, parser) except SystemExit as err: pytest.fail(capsys.readouterr().err) for key, value in config.items(): assert value != "None", "Use instead Null in {} for {}".format(
completed_process = subprocess.run( "simcore-service-storage --help".split(), **COMMON_KWARGS) print(completed_process.stdout) assert completed_process.returncode == os.EX_OK assert "Usage: simcore-service-storage [OPTIONS]" in completed_process.stdout def test_cli_check_config_dumps_json(project_env_devel_environment): completed_process = subprocess.run( "simcore-service-storage --check-config".split(), **COMMON_KWARGS) print(completed_process.stdout) assert completed_process.returncode == os.EX_OK assert json.loads(completed_process.stdout), "Can load output as json" @pytest.mark.parametrize("config_name", resources.listdir("data")) def test_cli_config_with_environs(config_name, project_env_devel_environment): config_path = Path(resources.get_path("data")) / config_name completed_process = subprocess.run( "simcore-service-storage --check-config --config".split() + [config_path], **COMMON_KWARGS) print(completed_process.stdout) print(completed_process.stderr, file=sys.stderr) assert completed_process.returncode == os.EX_OK config = json.loads(completed_process.stdout)