diff options
Diffstat (limited to 'tests/topotests/lib/test/test_json.py')
| -rwxr-xr-x | tests/topotests/lib/test/test_json.py | 344 |
1 files changed, 89 insertions, 255 deletions
diff --git a/tests/topotests/lib/test/test_json.py b/tests/topotests/lib/test/test_json.py index 3927ba095d..ba118d607a 100755 --- a/tests/topotests/lib/test/test_json.py +++ b/tests/topotests/lib/test/test_json.py @@ -32,36 +32,37 @@ import pytest # Save the Current Working Directory to find lib files. CWD = os.path.dirname(os.path.realpath(__file__)) -sys.path.append(os.path.join(CWD, '../../')) +sys.path.append(os.path.join(CWD, "../../")) # pylint: disable=C0413 from lib.topotest import json_cmp + def test_json_intersect_true(): "Test simple correct JSON intersections" dcomplete = { - 'i1': 'item1', - 'i2': 'item2', - 'i3': 'item3', - 'i100': 'item4', + "i1": "item1", + "i2": "item2", + "i3": "item3", + "i100": "item4", } dsub1 = { - 'i1': 'item1', - 'i3': 'item3', + "i1": "item1", + "i3": "item3", } dsub2 = { - 'i1': 'item1', - 'i2': 'item2', + "i1": "item1", + "i2": "item2", } dsub3 = { - 'i100': 'item4', - 'i2': 'item2', + "i100": "item4", + "i2": "item2", } dsub4 = { - 'i50': None, - 'i100': 'item4', + "i50": None, + "i100": "item4", } assert json_cmp(dcomplete, dsub1) is None @@ -69,99 +70,66 @@ def test_json_intersect_true(): assert json_cmp(dcomplete, dsub3) is None assert json_cmp(dcomplete, dsub4) is None + def test_json_intersect_false(): "Test simple incorrect JSON intersections" dcomplete = { - 'i1': 'item1', - 'i2': 'item2', - 'i3': 'item3', - 'i100': 'item4', + "i1": "item1", + "i2": "item2", + "i3": "item3", + "i100": "item4", } # Incorrect value for 'i1' dsub1 = { - 'i1': 'item3', - 'i3': 'item3', + "i1": "item3", + "i3": "item3", } # Non-existing key 'i5' dsub2 = { - 'i1': 'item1', - 'i5': 'item2', + "i1": "item1", + "i5": "item2", } # Key should not exist dsub3 = { - 'i100': None, + "i100": None, } assert json_cmp(dcomplete, dsub1) is not None assert json_cmp(dcomplete, dsub2) is not None assert json_cmp(dcomplete, dsub3) is not None + def test_json_intersect_multilevel_true(): "Test multi level correct JSON intersections" dcomplete = { - 'i1': 'item1', - 'i2': 'item2', - 'i3': { - 'i100': 'item100', + "i1": "item1", + "i2": "item2", + "i3": {"i100": "item100",}, + "i4": { + "i41": {"i411": "item411",}, + "i42": {"i421": "item421", "i422": "item422",}, }, - 'i4': { - 'i41': { - 'i411': 'item411', - }, - 'i42': { - 'i421': 'item421', - 'i422': 'item422', - } - } } dsub1 = { - 'i1': 'item1', - 'i3': { - 'i100': 'item100', - }, - 'i10': None, + "i1": "item1", + "i3": {"i100": "item100",}, + "i10": None, } dsub2 = { - 'i1': 'item1', - 'i2': 'item2', - 'i3': {}, + "i1": "item1", + "i2": "item2", + "i3": {}, } dsub3 = { - 'i2': 'item2', - 'i4': { - 'i41': { - 'i411': 'item411', - }, - 'i42': { - 'i422': 'item422', - 'i450': None, - } - } - } - dsub4 = { - 'i2': 'item2', - 'i4': { - 'i41': {}, - 'i42': { - 'i450': None, - } - } - } - dsub5 = { - 'i2': 'item2', - 'i3': { - 'i100': 'item100', - }, - 'i4': { - 'i42': { - 'i450': None, - } - } + "i2": "item2", + "i4": {"i41": {"i411": "item411",}, "i42": {"i422": "item422", "i450": None,}}, } + dsub4 = {"i2": "item2", "i4": {"i41": {}, "i42": {"i450": None,}}} + dsub5 = {"i2": "item2", "i3": {"i100": "item100",}, "i4": {"i42": {"i450": None,}}} assert json_cmp(dcomplete, dsub1) is None assert json_cmp(dcomplete, dsub2) is None @@ -169,78 +137,43 @@ def test_json_intersect_multilevel_true(): assert json_cmp(dcomplete, dsub4) is None assert json_cmp(dcomplete, dsub5) is None + def test_json_intersect_multilevel_false(): "Test multi level incorrect JSON intersections" dcomplete = { - 'i1': 'item1', - 'i2': 'item2', - 'i3': { - 'i100': 'item100', + "i1": "item1", + "i2": "item2", + "i3": {"i100": "item100",}, + "i4": { + "i41": {"i411": "item411",}, + "i42": {"i421": "item421", "i422": "item422",}, }, - 'i4': { - 'i41': { - 'i411': 'item411', - }, - 'i42': { - 'i421': 'item421', - 'i422': 'item422', - } - } } # Incorrect sub-level value dsub1 = { - 'i1': 'item1', - 'i3': { - 'i100': 'item00', - }, - 'i10': None, + "i1": "item1", + "i3": {"i100": "item00",}, + "i10": None, } # Inexistent sub-level dsub2 = { - 'i1': 'item1', - 'i2': 'item2', - 'i3': None, + "i1": "item1", + "i2": "item2", + "i3": None, } # Inexistent sub-level value dsub3 = { - 'i1': 'item1', - 'i3': { - 'i100': None, - }, + "i1": "item1", + "i3": {"i100": None,}, } # Inexistent sub-sub-level value - dsub4 = { - 'i4': { - 'i41': { - 'i412': 'item412', - }, - 'i42': { - 'i421': 'item421', - } - } - } + dsub4 = {"i4": {"i41": {"i412": "item412",}, "i42": {"i421": "item421",}}} # Invalid sub-sub-level value - dsub5 = { - 'i4': { - 'i41': { - 'i411': 'item411', - }, - 'i42': { - 'i421': 'item420000', - } - } - } + dsub5 = {"i4": {"i41": {"i411": "item411",}, "i42": {"i421": "item420000",}}} # sub-sub-level should be value - dsub6 = { - 'i4': { - 'i41': { - 'i411': 'item411', - }, - 'i42': 'foobar', - } - } + dsub6 = {"i4": {"i41": {"i411": "item411",}, "i42": "foobar",}} assert json_cmp(dcomplete, dsub1) is not None assert json_cmp(dcomplete, dsub2) is not None @@ -249,80 +182,54 @@ def test_json_intersect_multilevel_false(): assert json_cmp(dcomplete, dsub5) is not None assert json_cmp(dcomplete, dsub6) is not None + def test_json_with_list_sucess(): "Test successful json comparisons that have lists." dcomplete = { - 'list': [ - { - 'i1': 'item 1', - 'i2': 'item 2', - }, - { - 'i10': 'item 10', - }, - ], - 'i100': 'item 100', + "list": [{"i1": "item 1", "i2": "item 2",}, {"i10": "item 10",},], + "i100": "item 100", } # Test list type dsub1 = { - 'list': [], + "list": [], } # Test list correct list items dsub2 = { - 'list': [ - { - 'i1': 'item 1', - }, - ], - 'i100': 'item 100', + "list": [{"i1": "item 1",},], + "i100": "item 100", } # Test list correct list size dsub3 = { - 'list': [ - {}, {}, - ], + "list": [{}, {},], } assert json_cmp(dcomplete, dsub1) is None assert json_cmp(dcomplete, dsub2) is None assert json_cmp(dcomplete, dsub3) is None + def test_json_with_list_failure(): "Test failed json comparisons that have lists." dcomplete = { - 'list': [ - { - 'i1': 'item 1', - 'i2': 'item 2', - }, - { - 'i10': 'item 10', - }, - ], - 'i100': 'item 100', + "list": [{"i1": "item 1", "i2": "item 2",}, {"i10": "item 10",},], + "i100": "item 100", } # Test list type dsub1 = { - 'list': {}, + "list": {}, } # Test list incorrect list items dsub2 = { - 'list': [ - { - 'i1': 'item 2', - }, - ], - 'i100': 'item 100', + "list": [{"i1": "item 2",},], + "i100": "item 100", } # Test list correct list size dsub3 = { - 'list': [ - {}, {}, {}, - ], + "list": [{}, {}, {},], } assert json_cmp(dcomplete, dsub1) is not None @@ -334,53 +241,20 @@ def test_json_list_start_success(): "Test JSON encoded data that starts with a list that should succeed." dcomplete = [ - { - "id": 100, - "value": "abc", - }, - { - "id": 200, - "value": "abcd", - }, - { - "id": 300, - "value": "abcde", - }, + {"id": 100, "value": "abc",}, + {"id": 200, "value": "abcd",}, + {"id": 300, "value": "abcde",}, ] - dsub1 = [ - { - "id": 100, - "value": "abc", - } - ] + dsub1 = [{"id": 100, "value": "abc",}] - dsub2 = [ - { - "id": 100, - "value": "abc", - }, - { - "id": 200, - "value": "abcd", - } - ] + dsub2 = [{"id": 100, "value": "abc",}, {"id": 200, "value": "abcd",}] - dsub3 = [ - { - "id": 300, - "value": "abcde", - } - ] + dsub3 = [{"id": 300, "value": "abcde",}] - dsub4 = [ - ] + dsub4 = [] - dsub5 = [ - { - "id": 100, - } - ] + dsub5 = [{"id": 100,}] assert json_cmp(dcomplete, dsub1) is None assert json_cmp(dcomplete, dsub2) is None @@ -393,58 +267,18 @@ def test_json_list_start_failure(): "Test JSON encoded data that starts with a list that should fail." dcomplete = [ - { - "id": 100, - "value": "abc" - }, - { - "id": 200, - "value": "abcd" - }, - { - "id": 300, - "value": "abcde" - }, + {"id": 100, "value": "abc"}, + {"id": 200, "value": "abcd"}, + {"id": 300, "value": "abcde"}, ] - dsub1 = [ - { - "id": 100, - "value": "abcd", - } - ] + dsub1 = [{"id": 100, "value": "abcd",}] - dsub2 = [ - { - "id": 100, - "value": "abc", - }, - { - "id": 200, - "value": "abc", - } - ] + dsub2 = [{"id": 100, "value": "abc",}, {"id": 200, "value": "abc",}] - dsub3 = [ - { - "id": 100, - "value": "abc", - }, - { - "id": 350, - "value": "abcde", - } - ] + dsub3 = [{"id": 100, "value": "abc",}, {"id": 350, "value": "abcde",}] - dsub4 = [ - { - "value": "abcx", - }, - { - "id": 300, - "value": "abcde", - } - ] + dsub4 = [{"value": "abcx",}, {"id": 300, "value": "abcde",}] assert json_cmp(dcomplete, dsub1) is not None assert json_cmp(dcomplete, dsub2) is not None @@ -452,5 +286,5 @@ def test_json_list_start_failure(): assert json_cmp(dcomplete, dsub4) is not None -if __name__ == '__main__': +if __name__ == "__main__": sys.exit(pytest.main()) |
