Ejemplo n.º 1
0
def test_json_format():
    fixture = get_fixture('json_expected.json')
    expected = json.load(open(fixture))
    print(expected)

    check_json = generate_diff(get_fixture('before_nested.json'),
                               get_fixture('after_nested.json'),
                               out_format='json')
    check_yaml = generate_diff(get_fixture('before_nested.yml'),
                               get_fixture('after_nested.yml'),
                               out_format='json')
    assert expected == json.loads(check_json)
    assert expected == json.loads(check_yaml)
Ejemplo n.º 2
0
def test_default():
    with open('./tests/fixtures/1__expected_default.txt', 'r') as fixture:
        # rstrip() to get rid of \n in the end
        expected = fixture.read().rstrip()

        assert expected == generate_diff('./tests/fixtures/1__before.json',
                                         './tests/fixtures/1__after.json')
        assert expected == generate_diff('./tests/fixtures/1__before.yaml',
                                         './tests/fixtures/1__after.yaml')
        assert expected == generate_diff('./tests/fixtures/1__before.yaml',
                                         './tests/fixtures/1__after.json')

        assert expected == generate_diff('./tests/fixtures/1__before.json',
                                         './tests/fixtures/1__after.yaml')
Ejemplo n.º 3
0
def main():
    args = parser.parse_args()
    # Handling absolute and relative paths.
    path_to_file1 = get_abspath(args.first_file)
    path_to_file2 = get_abspath(args.second_file)
    diff_str = generate_diff(path_to_file1, path_to_file2)
    print(diff_str)
Ejemplo n.º 4
0
def test_text_format():
    for expected_data, init_data in check.items():
        before_json, before_yaml, after_json, after_yaml, check_format = init_data  # noqa:E501

        with open(get_fixture(expected_data), 'r') as fixture:
            expected = fixture.read()

        assert expected == generate_diff(get_fixture(before_json),
                                         get_fixture(after_json),
                                         out_format=check_format)
        assert expected == generate_diff(get_fixture(before_json),
                                         get_fixture(after_yaml),
                                         out_format=check_format)
        assert expected == generate_diff(get_fixture(before_yaml),
                                         get_fixture(after_yaml),
                                         out_format=check_format)
Ejemplo n.º 5
0
def test_plain_format(expected_plain_result):
    diff = generate_diff(
        'tests/fixtures/before.json',
        'tests/fixtures/after.json',
        format_func=plain.format_ast,
    )
    assert sorted(diff.split('\n')) == sorted(expected_plain_result)
Ejemplo n.º 6
0
def test_json_format(expected_json_result):
    diff = generate_diff(
        'tests/fixtures/before.json',
        'tests/fixtures/after.json',
        format_func=json_formatter.format_ast,
    )
    assert json.loads(diff) == expected_json_result
def test_json(file1, file2, out_format, expectation):
    """Test json for flat and nested.."""
    old = files.load(file1)
    new = files.load(file2)
    assert json.loads(generate_diff(old, new, out_format)) == json.loads(
        read(expectation),
    )
Ejemplo n.º 8
0
def test_json_yaml_diff(expected_text_result):
    diff = generate_diff(
        'tests/fixtures/before.json',
        'tests/fixtures/after.yaml',
        format_func=text.format_ast,
    )
    assert diff.split('\n') == expected_text_result
Ejemplo n.º 9
0
def test_json():
    """ Tests for format.json"""
    with open("./tests/fixtures/1__expected.json", "r") as f:
        expected = json.load(f)
        assert expected == json.loads(
            generate_diff(
                "./tests/fixtures/1__before.json",
                "./tests/fixtures/1__after.json",
                format.json,
            ))
        assert expected == json.loads(
            generate_diff(
                "./tests/fixtures/2__before.yaml",
                "./tests/fixtures/2__after.yaml",
                format.json,
            ))
Ejemplo n.º 10
0
def main():
    print(
        generate_diff(
            parse_args().first_file,
            parse_args().second_file,
            parse_args().format
        )
    )
Ejemplo n.º 11
0
def test_nested_default():
    with open('./tests/fixtures/3__expected.txt', 'r') as fixture:
        expected = fixture.read()
        assert expected == generate_diff(
            './tests/fixtures/3__before.json',
            './tests/fixtures/3__after.json',
            format.plain,
        )
def test_json_output(file1, file2):
    with open(FIXDIR / 'expected_nested.json', 'r') as expected:
        expected_data = json.load(expected)
    generate_diff_output = generate_diff(
        FIXDIR / file1,
        FIXDIR / file2,
        output_format=format.json,
    )
    assert json.loads(generate_diff_output) == expected_data
Ejemplo n.º 13
0
def main():
    parser = get_parse_args()
    args = parser.parse_args()
    diff = generate_diff(
        args.first_file,
        args.second_file,
        out_format=args.format
    )
    print(diff)
def test_single_value_json():
    with pytest.raises(Exception) as exception:
        assert generate_diff(
            FIXDIR / 'single_value_old.json',
            FIXDIR / 'single_value_new.json',
            output_format=format.plain,
        ) == read_txt('./tests/fixtures/expected_plain.txt')
        assert str(exception.value) == (
            'Unsupported .json structure: not a configuration file.')
Ejemplo n.º 15
0
def test_default():
    with open('./tests/fixtures/1__expected_default.txt', 'r') as fixture:
        expected = fixture.read()

        assert expected == generate_diff(
            './tests/fixtures/1__before.json',
            './tests/fixtures/1__after.json',
            format.default,
        )
        assert expected == generate_diff(
            "./tests/fixtures/2__before.yaml",
            './tests/fixtures/2__after.yaml',
            format.default,
        )
        assert expected == generate_diff(
            './tests/fixtures/1__before.json',
            './tests/fixtures/2__after.yaml',
            format.default,
        )
def test_nonjson_output(file1, file2, output_format, expected):
    assert generate_diff(
        FIXDIR / file1,
        FIXDIR / file2,
        output_format=output_format,
    ) == read_txt(FIXDIR / 'expected_{0}.txt'.format(expected))
Ejemplo n.º 17
0
def main():
    """Run a code."""
    old, new, formater = cli.parse()
    print(generate_diff(old, new, formater))  # noqa: T001
def test_exception(file1, file2, out_format, message):
    """Test exceptions for format and extension."""
    with pytest.raises(Exception, match=message):
        generate_diff(files.load(file1), files.load(file2), out_format)
def test_stylish_and_plain(file1, file2, out_format, expectation):
    """Test default for flat and nested."""
    old = files.load(file1)
    new = files.load(file2)
    assert generate_diff(old, new, out_format) == read(expectation)
Ejemplo n.º 20
0
from gendiff.diff import generate_diff
from gendiff import format
import json
import pytest
import os


PATH = './tests/fixtures/'
OLD_CONFIG = f'{PATH}test_old_config.json'
NEW_CONFIG = f'{PATH}test_new_config.json'

test_cases_diff = [
    (
        generate_diff(OLD_CONFIG, NEW_CONFIG, format.default),
        f'{PATH}test_result_default.txt'
    ),
    (
        generate_diff(OLD_CONFIG, NEW_CONFIG, format.plain),
        f'{PATH}test_result_plain.txt'
    ),
    (
        generate_diff(OLD_CONFIG, NEW_CONFIG, format.json),
        f'{PATH}test_result_json.json'
    )
]


@pytest.mark.parametrize('test_input, expected_result', test_cases_diff)
def test_generate_diff(test_input, expected_result):
    _, ext = os.path.splitext(expected_result)
    if ext == '.json':
Ejemplo n.º 21
0
def main():
    """Run the utility in terminal."""
    args = parser.parse_args()
    print(generate_diff(args.first_file, args.second_file, args.format))