예제 #1
0
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()
예제 #2
0
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()
예제 #3
0
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()
예제 #4
0
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()