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)
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')
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)
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)
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)
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), )
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
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, ))
def main(): print( generate_diff( parse_args().first_file, parse_args().second_file, parse_args().format ) )
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
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.')
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))
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)
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':
def main(): """Run the utility in terminal.""" args = parser.parse_args() print(generate_diff(args.first_file, args.second_file, args.format))