def test_value_exists_no_value(temporary_file): expected_file = Path(temporary_file.name) expected_file.write_text("stack: scala") rule = YamlValueExists( name="Ensure service descriptor has dependencies", path=expected_file, key="stack", ) rule.pre_task_hook() rule.task() assert expected_file.read_text() == "stack:\n" expected_file.unlink()
def test_value_nested_already_exists(temporary_file): expected_file = Path(temporary_file.name) expected_file.write_text("development:\n supported: true\n") rule = YamlValueExists( name="Ensure local development is supported", path=expected_file, key="development.supported", value=True, ) rule.pre_task_hook() rule.task() assert expected_file.read_text() == "development:\n supported: true\n" expected_file.unlink()
def test_value_exists_dict_already_exists(temporary_file): expected_file = Path(temporary_file.name) expected_file.write_text("stack: python\ndependencies: {service3: true}") rule = YamlValueExists( name="Ensure service descriptor has dependencies", path=expected_file, key="dependencies", value={"service1": True}, ) rule.pre_task_hook() rule.task() assert (expected_file.read_text() == "stack: python\ndependencies: {service3: true, service1: true}\n") expected_file.unlink()
def test_value_exists_list_already_exists_single_item(temporary_file): expected_file = Path(temporary_file.name) expected_file.write_text("stack: python\ndependencies: [service2]") rule = YamlValueExists( name="Ensure service descriptor has dependencies", path=expected_file, key="dependencies", value="service1", ) rule.pre_task_hook() rule.task() assert (expected_file.read_text() == "stack: python\ndependencies: [service2, service1]\n") expected_file.unlink()
def test_value_exists_nested_list_single_item(temporary_file): expected_file = Path(temporary_file.name) expected_file.write_text("stack: python\nnested:\n dependencies: []") rule = YamlValueExists( name="Ensure service descriptor has dependencies", path=expected_file, key="nested.dependencies", value="service1", ) rule.pre_task_hook() rule.task() # Because of the default flow style False, the result will be block-styled assert (expected_file.read_text() == "stack: python\nnested:\n dependencies:\n - service1\n") expected_file.unlink()