def test_0050_config_invalid_value_types(config): """Test that configs with invalid value types don't pass validation.""" bad_values_config1 = testutils.yaml_to_dict(env.ACTIVE_CONFIG_FILEPATH) bad_values_config1['vcd'] = True bad_values_config1['vcs'] = 'a' bad_values_config2 = testutils.yaml_to_dict(env.ACTIVE_CONFIG_FILEPATH) bad_values_config2['vcd']['username'] = True bad_values_config2['vcd']['api_version'] = 123 bad_values_config2['vcd']['port'] = 'a' bad_values_config3 = testutils.yaml_to_dict(env.ACTIVE_CONFIG_FILEPATH) bad_values_config3['vcs'][0]['username'] = True bad_values_config3['vcs'][0]['password'] = 123 bad_values_config3['vcs'][0]['verify'] = 'a' bad_values_config4 = testutils.yaml_to_dict(env.ACTIVE_CONFIG_FILEPATH) bad_values_config4['broker']['remote_template_cookbook_url'] = 1 configs = [ bad_values_config1, bad_values_config2, bad_values_config3, bad_values_config4 ] for config in configs: testutils.dict_to_yaml_file(config, env.ACTIVE_CONFIG_FILEPATH) try: get_validated_config(env.ACTIVE_CONFIG_FILEPATH, skip_config_decryption=True) assert False, f"{env.ACTIVE_CONFIG_FILEPATH} passed validation " \ f"when it should not have" except TypeError: pass
def test_0040_config_missing_keys(config): """Test that config files with missing keys don't pass validation.""" bad_key_config1 = testutils.yaml_to_dict(env.ACTIVE_CONFIG_FILEPATH) del bad_key_config1['mqtt'] bad_key_config2 = testutils.yaml_to_dict(env.ACTIVE_CONFIG_FILEPATH) del bad_key_config2['vcs'][0]['username'] configs = [ bad_key_config1, bad_key_config2 ] for config in configs: testutils.dict_to_yaml_file(config, env.ACTIVE_CONFIG_FILEPATH) PYTEST_LOGGER.debug(f"Validating config: {config}") try: get_validated_config(env.ACTIVE_CONFIG_FILEPATH, skip_config_decryption=True) PYTEST_LOGGER.debug("Validation succeeded when it " "should not have") assert False, f"{env.ACTIVE_CONFIG_FILEPATH} passed validation " \ f"when it should not have" except KeyError as e: PYTEST_LOGGER.debug("Validation failed as expected due " f"to invalid keys: {e}")
def test_0060_config_valid(config): """Test that configs with valid keys and value types pass validation.""" try: get_validated_config(env.ACTIVE_CONFIG_FILEPATH, skip_config_decryption=True) except (KeyError, TypeError, ValueError): assert False, f"{env.ACTIVE_CONFIG_FILEPATH} did not pass validation" \ f" when it should have"
def test_0060_config_valid(config): """Test that configs with valid keys and value types pass validation.""" PYTEST_LOGGER.debug(f"Validating config: {config}") try: get_validated_config(env.ACTIVE_CONFIG_FILEPATH, skip_config_decryption=True) PYTEST_LOGGER.debug("Validation succeeded as expected.") except (KeyError, TypeError, ValueError) as e: PYTEST_LOGGER.debug(f"Failed to validate the config. Error: {e}") assert False, f"{env.ACTIVE_CONFIG_FILEPATH} did not pass validation" \ f" when it should have"
def test_0040_config_missing_keys(config): """Test that config files with missing keys don't pass validation.""" bad_key_config1 = testutils.yaml_to_dict(env.ACTIVE_CONFIG_FILEPATH) del bad_key_config1['amqp'] bad_key_config2 = testutils.yaml_to_dict(env.ACTIVE_CONFIG_FILEPATH) del bad_key_config2['vcs'][0]['username'] configs = [bad_key_config1, bad_key_config2] for config in configs: testutils.dict_to_yaml_file(config, env.ACTIVE_CONFIG_FILEPATH) try: get_validated_config(env.ACTIVE_CONFIG_FILEPATH, skip_config_decryption=True) assert False, f"{env.ACTIVE_CONFIG_FILEPATH} passed validation " \ f"when it should not have" except KeyError: pass