def test_value_exists_no_value(temporary_file): expected_file = Path(temporary_file.name) expected_file.write_text('{"stack":"scala"}') rule = JsonValueExists( name="Ensure service descriptor has dependencies", path=expected_file, key="stack", ) rule.pre_task_hook() rule.task() assert expected_file.read_text() == '{"stack":null}' expected_file.unlink()
def test_value_nested_already_exists(temporary_file): expected_file = Path(temporary_file.name) expected_file.write_text('{"development":{"supported":true}}') rule = JsonValueExists( 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":{"supported":true}}' expected_file.unlink()
def test_value_exists_list_single_item(temporary_file): expected_file = Path(temporary_file.name) expected_file.write_text('{"stack":"python","dependencies":[]}') rule = JsonValueExists( name="Ensure service descriptor has dependencies", path=expected_file, key="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","dependencies":["service1"]}' expected_file.unlink()
def test_value_exists_dict_already_exists(temporary_file): expected_file = Path(temporary_file.name) expected_file.write_text('{"stack":"python","dependencies":{"service3":true}}') rule = JsonValueExists( 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","dependencies":{"service3":true,"service1":true}}' ) expected_file.unlink()