Exemplo n.º 1
0
 def test_simple_json_to_avu_float(self):
     """
     Test if simple json is correctly transformed to avu's using float as type
     """
     data = json.loads('{"k1": 5.0 }')
     avu = jsonavu.json2avu(data, "root")
     self.assertEqual([{'a': 'k1', 'u': 'root_0_n', 'v': '5.0'}], avu)
Exemplo n.º 2
0
 def test_simple_json_to_avu_string(self):
     """
     Test if simple json is correctly transformed to avu's using string as type
     """
     data = json.loads('{"k1": "v1"}')
     avu = jsonavu.json2avu(data, "root")
     self.assertEqual([{'a': 'k1', 'u': 'root_0_s', 'v': 'v1'}], avu)
Exemplo n.º 3
0
 def test_simple_json_to_avu_nested_array(self):
     """
     Test if simple json is correctly transformed to avu's using object as type
     """
     data = json.loads('{"k1": "v1","k2":[["v4", "v5"],["v6", "v7"]]}')
     avu = jsonavu.json2avu(data, "root")
     expected_avu = [{
         'a': u'k2',
         'u': 'root_0_s#0#0',
         'v': u'v4'
     }, {
         'a': u'k2',
         'u': 'root_0_s#0#1',
         'v': u'v5'
     }, {
         'a': u'k2',
         'u': 'root_0_s#1#0',
         'v': u'v6'
     }, {
         'a': u'k2',
         'u': 'root_0_s#1#1',
         'v': u'v7'
     }, {
         'a': u'k1',
         'u': 'root_0_s',
         'v': u'v1'
     }]
     self.assertCountEqual(expected_avu, avu)
Exemplo n.º 4
0
 def test_simple_bidirectional(self):
     """
     Test if simple json is correctly transformed to avu and back to json
     """
     data = json.loads('{"k1": "v1"}')
     avu = jsonavu.json2avu(data, "root")
     json_output = jsonavu.avu2json(avu, "root")
     self.assertEqual('{"k1": "v1"}', json.dumps(json_output))
Exemplo n.º 5
0
 def test_json_empty_arrays_file_bidirectional(self):
     """
     Test if empty array and empty object json file is correctly transformed to avu and back to json
     """
     data = json.loads(self.test_data_empty_arrays_json)
     avu = jsonavu.json2avu(data, "root")
     json_output = jsonavu.avu2json(avu, "root")
     self.assertCountEqual(json.dumps(data, sort_keys=True),
                           json.dumps(json_output, sort_keys=True))
 def test_unicode_bidirectional(self):
     """
     Test if unicode json is correctly transformed to avu and back to json
     """
     data = json.loads('{"k1": "µm"}')
     avu = jsonavu.json2avu(data, "root")
     json_output = jsonavu.avu2json(avu, "root")
     self.assertEqual('{"k1": "µm"}',
                      json.dumps(json_output, ensure_ascii=False))
Exemplo n.º 7
0
 def test_json_to_avu_only_list_input(self):
     """
     Test if json with only a list is correctly parsed
     """
     avu = jsonavu.json2avu(['test', 'test2'], "root")
     self.assertEqual([{
         'a': 'root',
         'u': 'root_0_s#0',
         'v': 'test'
     }, {
         'a': 'root',
         'u': 'root_0_s#1',
         'v': 'test2'
     }], avu)
Exemplo n.º 8
0
 def test_simple_json_to_avu_boolean(self):
     """
     Test if simple json is correctly transformed to avu's using boolean as type
     """
     data = json.loads('{"k1": true , "k2": false }')
     avu = jsonavu.json2avu(data, "root")
     self.assertCountEqual([{
         'a': u'k2',
         'u': 'root_0_b',
         'v': 'False'
     }, {
         'a': u'k1',
         'u': 'root_0_b',
         'v': 'True'
     }], avu)
Exemplo n.º 9
0
 def test_simple_json_to_avu_empty_object(self):
     """
     Test if simple json is correctly transformed to avu using empty object
     """
     data = json.loads('{"k1": "v1","emptyObj": {}}')
     avu = jsonavu.json2avu(data, "root")
     expected_avu = [{
         'a': u'k1',
         'u': 'root_0_s',
         'v': u'v1'
     }, {
         'a': u'emptyObj',
         'u': 'root_0_o1',
         'v': u'o1'
     }]
     self.assertCountEqual(expected_avu, avu)
Exemplo n.º 10
0
 def test_simple_json_to_avu_empty_array(self):
     """
     Test if simple json is correctly transformed to avu using empty array
     """
     data = json.loads('{"k1": "v1","emptyArr": []}')
     avu = jsonavu.json2avu(data, "root")
     expected_avu = [{
         'a': u'k1',
         'u': 'root_0_s',
         'v': u'v1'
     }, {
         'a': u'emptyArr',
         'u': 'root_0_a',
         'v': u'.'
     }]
     self.assertCountEqual(expected_avu, avu)
Exemplo n.º 11
0
 def test_json_types_file_json_to_avu(self):
     """
     Test if types json file is correctly transformed to avu
     """
     data = json.loads(self.test_data_types_json)
     avu = jsonavu.json2avu(data, "root")
     expected_avu = [{
         'a': 'k2',
         'u': 'root_0_o1',
         'v': 'o1'
     }, {
         'a': 'k3',
         'u': 'root_1_z',
         'v': '.'
     }, {
         'a': 'k4',
         'u': 'root_1_s',
         'v': 'v3'
     }, {
         'a': 'k1',
         'u': 'root_0_e',
         'v': '.'
     }, {
         'a': 'k6',
         'u': 'root_0_o2#0',
         'v': 'o2'
     }, {
         'a': 'k8',
         'u': 'root_2_b',
         'v': 'False'
     }, {
         'a': 'k7',
         'u': 'root_2_b',
         'v': 'True'
     }, {
         'a': 'k5',
         'u': 'root_0_n#0',
         'v': '42'
     }, {
         'a': 'k5',
         'u': 'root_0_n#1',
         'v': '42.42'
     }]
     self.assertCountEqual(expected_avu, avu)
Exemplo n.º 12
0
 def test_simple_json_to_avu_object(self):
     """
     Test if simple json is correctly transformed to avu's using object as type
     """
     data = json.loads('{"k2": {"k3" : null,"k4" : "v3" }}')
     avu = jsonavu.json2avu(data, "root")
     expected_avu = [{
         'a': u'k2',
         'u': 'root_0_o1',
         'v': 'o1'
     }, {
         'a': u'k3',
         'u': 'root_1_z',
         'v': '.'
     }, {
         'a': u'k4',
         'u': 'root_1_s',
         'v': u'v3'
     }]
     self.assertEqual(expected_avu, avu)
Exemplo n.º 13
0
 def test_json_to_avu_only_string_input(self):
     """
     Test if json with only a string is correctly parsed
     """
     avu = jsonavu.json2avu('test', "root")
     self.assertEqual([{'a': 'root', 'u': 'root_0_s', 'v': 'test'}], avu)
Exemplo n.º 14
0
        try:
            jsonschema.validate(instance=data, schema=schema)
        except jsonschema.exceptions.ValidationError, e:
            callback.msiExit("-1101000", "JSON instance could not be validated against JSON-schema: " + str(e.message))
            return

    # Load global variable activelyUpdatingAVUs and set this to true. At this point we are actively updating
    # AVUs and want to disable the check for not being able to set JSON AVUs directly
    global activelyUpdatingAVUs
    activelyUpdatingAVUs = True

    ret_val = callback.msi_rmw_avu(object_type, object_name, "%", "%", json_root + "_%")
    if ret_val['status'] is False and ret_val['code'] != -819000:
        return

    avu = jsonavu.json2avu(data, json_root)

    for i in avu:
        callback.msi_add_avu(object_type, object_name, i["a"], i["v"], i["u"])

    # Set global variable activelyUpdatingAVUs to false. At this point we are done updating AVU and want
    # to enable some of the checks.
    activelyUpdatingAVUs = False


def getJsonFromObj(rule_args, callback, rei):
    """
    This function return a JSON string from AVU's set to an object

    :param rule_args:
        Argument 0: The object name (/nlmumc/P000000003, /nlmumc/projects/metadata.xml, [email protected], demoResc)
Exemplo n.º 15
0
#!/usr/bin/python3

import json
import sys

import jsonavu

with open(sys.argv[1]) as f:
    data = json.load(f)

avu = jsonavu.json2avu(data, "root")

print("Source:")
print(json.dumps(data, indent=4))

# Find out max V length and use that for formatting
max_a_len = len(max(avu, key=lambda k: len(str(k["a"])))["a"])
max_v_len = len(max(avu, key=lambda k: len(str(k["v"])))["v"])
out_format = "%" + str(max_a_len + 5) + "s %" + str(max_v_len + 5) + "s %15s"

print("AVUs:")
print(out_format % ("A", "V", "U"))
for i in avu:
    print(out_format % (i["a"], i["v"], i["u"]))

print("JSON:")
data_back = jsonavu.avu2json(avu, "root")
print(json.dumps(data_back, indent=4))