def test_conversion_XML_to_JSON_get_list_with_name_of_child(self): self.maxDiff = None url = "/api/config/car/toyota/models/name-m" xml = _collapse_string(''' <data> <car xmlns="http://riftio.com/ns/core/mgmt/rwrestconf/test/vehicle-a"> <brand>toyota</brand> <models> <name-m>name-m</name-m> <capacity>5</capacity> </models> </car> </data> ''') # expected_json = _collapse_string(''' {"vehicle-a:models" :{"name-m" : "name-m","capacity" : 5}} ''') schema = load_multiple_schema_root(["vehicle-a", "vehicle-augment-a"]) converter = XmlToJsonTranslator(schema, logger) xpath = create_xpath_from_url(url, schema) actual_json = converter.convert(False, url, xpath, xml) actual = _ordered(json.loads(actual_json)) expected = _ordered(json.loads(expected_json)) self.assertEquals(actual, expected)
def test_conversion_XML_to_JSON_version(self): self.maxDiff = None url = "/api/config/car/toyota/models" xml = _collapse_string(''' <data> <car xmlns="http://riftio.com/ns/core/mgmt/rwrestconf/test/vehicle-a"> <models> <name-m>Camry</name-m> <year>2015</year> <capacity>5</capacity> <version_str>2.0</version_str> </models> </car> </data> ''') # expected_json = _collapse_string(''' {"vehicle-a:models":[{"year" : 2015,"name-m" : "Camry","capacity" : 5, "version_str":"2.0"}]} ''') schema = load_multiple_schema_root(["vehicle-a", "vehicle-augment-a"]) converter = XmlToJsonTranslator(schema, logger) xpath = create_xpath_from_url(url, schema) actual_json = converter.convert(False, url, xpath, xml) actual = _ordered(json.loads(actual_json)) expected = _ordered(json.loads(expected_json)) self.assertEquals(actual, expected)
def test_conversion_XML_to_JSON_null_string(self): self.maxDiff = None url = "/api/operational/car/toyota/models" xml = _collapse_string(''' <data> <car xmlns="http://riftio.com/ns/core/mgmt/rwrestconf/test/vehicle-a"> <models> <name-m/> </models> </car> </data> ''') expected_json = _collapse_string(''' {"vehicle-a:models":[{"name-m" : ""}]} ''') schema = load_multiple_schema_root(["vehicle-a", "vehicle-augment-a"]) converter = XmlToJsonTranslator(schema, logger) xpath = create_xpath_from_url(url, schema) actual_json = converter.convert(False, url, xpath, xml) actual = _ordered(json.loads(actual_json)) expected = _ordered(json.loads(expected_json)) self.assertEquals(actual, expected)
def test_conversion_XML_to_JSON_null_string(self): self.maxDiff = None url = "/api/operational/car/toyota/models" xml = _collapse_string( """ <data> <car xmlns="http://riftio.com/ns/core/mgmt/rwrestconf/test/vehicle-a"> <models> <name-m/> </models> </car> </data> """ ) expected_json = _collapse_string( """ {"vehicle-a:models":[{"name-m" : ""}]} """ ) schema = load_multiple_schema_root(["vehicle-a", "vehicle-augment-a"]) converter = XmlToJsonTranslator(schema, logger) xpath = create_xpath_from_url(url, schema) actual_json = converter.convert(False, url, xpath, xml) actual = _ordered(json.loads(actual_json)) expected = _ordered(json.loads(expected_json)) self.assertEquals(actual, expected)
def test_conversion_XML_to_JSON_version(self): self.maxDiff = None url = "/api/config/car/toyota/models" xml = _collapse_string(''' <data> <car xmlns="http://riftio.com/ns/core/mgmt/rwrestconf/test/vehicle-a"> <models> <name-m>Camry</name-m> <year>2015</year> <capacity>5</capacity> <version_str>2.0</version_str> </models> </car> </data> ''') # expected_json = _collapse_string(''' {"vehicle-a:models":[{"year" : 2015,"name-m" : "Camry","capacity" : 5, "version_str":"2.0"}]} ''') schema = load_multiple_schema_root(["vehicle-a","vehicle-augment-a"]) converter = XmlToJsonTranslator(schema, logger) xpath = create_xpath_from_url(url, schema) actual_json = converter.convert(False, url, xpath, xml) actual = _ordered(json.loads(actual_json)) expected = _ordered(json.loads(expected_json)) self.assertEquals(actual, expected)
def test_conversion_XML_to_JSON_get_list_with_name_of_child(self): self.maxDiff = None url = "/api/config/car/toyota/models/name-m" xml = _collapse_string(''' <data> <car xmlns="http://riftio.com/ns/core/mgmt/rwrestconf/test/vehicle-a"> <brand>toyota</brand> <models> <name-m>name-m</name-m> <capacity>5</capacity> </models> </car> </data> ''') # expected_json = _collapse_string(''' {"vehicle-a:models" :{"name-m" : "name-m","capacity" : 5}} ''') schema = load_multiple_schema_root(["vehicle-a","vehicle-augment-a"]) converter = XmlToJsonTranslator(schema, logger) xpath = create_xpath_from_url(url, schema) actual_json = converter.convert(False, url, xpath, xml) actual = _ordered(json.loads(actual_json)) expected = _ordered(json.loads(expected_json)) self.assertEquals(actual, expected)
def test_conversion_XML_to_JSON_vcs(self): self.maxDiff = None url = "/api/operational/vcs/info" xml = _collapse_string( """ <data> <rw-base:vcs xmlns:rw-base="http://riftio.com/ns/riftware-1.0/rw-base"> <rw-base:info> <rw-base:components> <rw-base:component_info> <rw-base:instance_name>RW_VM_MASTER-2</rw-base:instance_name> <rw-base:component_type>RWVM</rw-base:component_type> <rw-base:component_name>RW_VM_MASTER</rw-base:component_name> <rw-base:instance_id>2</rw-base:instance_id> <rw-base:state>RUNNING</rw-base:state> <rw-base:config-ready>true</rw-base:config-ready> <rw-base:recovery-action>FAILCRITICAL</rw-base:recovery-action> <rw-base:rwcomponent_parent>rw.colony-102</rw-base:rwcomponent_parent> <rw-base:rwcomponent_children>msgbroker-100</rw-base:rwcomponent_children> <rw-base:rwcomponent_children>dtsrouter-101</rw-base:rwcomponent_children> <rw-base:rwcomponent_children>RW.Proc_1.uAgent-103</rw-base:rwcomponent_children> <rw-base:rwcomponent_children>RW.TermIO-105</rw-base:rwcomponent_children> <rw-base:rwcomponent_children>RW.CLI-104</rw-base:rwcomponent_children> <rw-base:rwcomponent_children>RW.Proc_2.Restconf-106</rw-base:rwcomponent_children> <rw-base:rwcomponent_children>RW.Proc_3.RestPortForward-108</rw-base:rwcomponent_children> <rw-base:rwcomponent_children>RW.MC.UI-109</rw-base:rwcomponent_children> <rw-base:rwcomponent_children>logd-110</rw-base:rwcomponent_children> <rw-base:rwcomponent_children>confd-114</rw-base:rwcomponent_children> <rw-base:vm_info> <rw-base:vm-ip-address>127.0.2.1</rw-base:vm-ip-address> <rw-base:pid>31610</rw-base:pid> <rw-base:leader>true</rw-base:leader> </rw-base:vm_info> </rw-base:component_info> </rw-base:components> </rw-base:info> </rw-base:vcs> </data> """ ) schema = load_multiple_schema_root(["rw-base"]) converter = XmlToJsonTranslator(schema, logger) xpath = create_xpath_from_url(url, schema) actual_json = converter.convert(False, url, xpath, xml)
def test_conversion_XML_to_JSON_vcs(self): self.maxDiff = None url = "/api/operational/vcs/info" xml = _collapse_string(''' <data> <rw-base:vcs xmlns:rw-base="http://riftio.com/ns/riftware-1.0/rw-base"> <rw-base:info> <rw-base:components> <rw-base:component_info> <rw-base:instance_name>RW_VM_MASTER-2</rw-base:instance_name> <rw-base:component_type>RWVM</rw-base:component_type> <rw-base:component_name>RW_VM_MASTER</rw-base:component_name> <rw-base:instance_id>2</rw-base:instance_id> <rw-base:state>RUNNING</rw-base:state> <rw-base:config-ready>true</rw-base:config-ready> <rw-base:recovery-action>FAILCRITICAL</rw-base:recovery-action> <rw-base:rwcomponent_parent>rw.colony-102</rw-base:rwcomponent_parent> <rw-base:rwcomponent_children>msgbroker-100</rw-base:rwcomponent_children> <rw-base:rwcomponent_children>dtsrouter-101</rw-base:rwcomponent_children> <rw-base:rwcomponent_children>RW.Proc_1.uAgent-103</rw-base:rwcomponent_children> <rw-base:rwcomponent_children>RW.TermIO-105</rw-base:rwcomponent_children> <rw-base:rwcomponent_children>RW.CLI-104</rw-base:rwcomponent_children> <rw-base:rwcomponent_children>RW.Proc_2.Restconf-106</rw-base:rwcomponent_children> <rw-base:rwcomponent_children>RW.Proc_3.RestPortForward-108</rw-base:rwcomponent_children> <rw-base:rwcomponent_children>RW.MC.UI-109</rw-base:rwcomponent_children> <rw-base:rwcomponent_children>logd-110</rw-base:rwcomponent_children> <rw-base:rwcomponent_children>confd-114</rw-base:rwcomponent_children> <rw-base:vm_info> <rw-base:vm-ip-address>127.0.2.1</rw-base:vm-ip-address> <rw-base:pid>31610</rw-base:pid> <rw-base:leader>true</rw-base:leader> </rw-base:vm_info> </rw-base:component_info> </rw-base:components> </rw-base:info> </rw-base:vcs> </data> ''') schema = load_multiple_schema_root(["rw-base"]) converter = XmlToJsonTranslator(schema, logger) xpath = create_xpath_from_url(url, schema) actual_json = converter.convert(False, url, xpath, xml)
def test_conversion_XML_to_JSON_2(self): self.maxDiff = None url = "/api/operational/car/toyota/models" xml = _collapse_string( """ <data> <car xmlns="http://riftio.com/ns/core/mgmt/rwrestconf/test/vehicle-a"> <models> <name-m>Camry</name-m> <year>2015</year> <capacity>5</capacity> </models> <models> <name-m>Tacoma</name-m> <year>2017</year> <capacity>7</capacity> </models> </car> </data> """ ) expected_json = _collapse_string( """ {"collection":{"vehicle-a:models":[{"name-m" : "Camry","capacity" : 5,"year" : 2015},{"name-m" : "Tacoma","capacity" : 7,"year" : 2017}]}} """ ) schema = load_multiple_schema_root(["vehicle-a", "vehicle-augment-a"]) converter = XmlToJsonTranslator(schema, logger) xpath = create_xpath_from_url(url, schema) actual_json = converter.convert(True, url, xpath, xml) actual = _ordered(json.loads(actual_json)) expected = _ordered(json.loads(expected_json)) self.assertEquals(actual, expected)