diff --git a/VERSION b/VERSION index 7693c96b..446ba66e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.3 \ No newline at end of file +0.1.4 \ No newline at end of file diff --git a/snappi/snappicommon.py b/snappi/snappicommon.py index bdb29016..aad27ea9 100644 --- a/snappi/snappicommon.py +++ b/snappi/snappicommon.py @@ -226,6 +226,7 @@ def _decode(self, encoded_snappi_list): item_class_name = self.__class__.__name__.replace('List', '') module = importlib.import_module(item_class_path) object_class = getattr(module, item_class_name) + self._items.clear() for item in encoded_snappi_list: self._add(object_class()._decode(item)) diff --git a/snappi/snappigenerator.py b/snappi/snappigenerator.py index 6a842420..6b17af55 100644 --- a/snappi/snappigenerator.py +++ b/snappi/snappigenerator.py @@ -320,7 +320,7 @@ def _write_snappi_list(self, ref, property_name): self._write(2, 'super(%sList, self).__init__()' % class_name) self._write() # write factory method for the schema object in the list - self._write_factory_method(None, class_name.lower(), ref, True) + self._write_factory_method(None, ref_name.lower().split('.')[-1], ref, True) # write choice factory methods if any if 'properties' in yobject and 'choice' in yobject['properties']: for property in yobject['properties']: diff --git a/snappi/tests/conftest.py b/snappi/tests/conftest.py index d2ee5d7e..c591ddb8 100644 --- a/snappi/tests/conftest.py +++ b/snappi/tests/conftest.py @@ -34,6 +34,9 @@ def b2b_config(api): tx_device.ipv4.address.value = '1.1.1.1' tx_device.ipv4.gateway.value = '1.1.2.1' tx_device.ipv4.prefix.value = 16 + vlan1, vlan2 = tx_device.ipv4.ethernet.vlans.vlan().vlan() + vlan1.id.value = 1 + vlan2.id.value = 2 tx_device.ipv4.ethernet.mac.value = '00:00:01:00:00:01' flow = config.flows.flow(name='Tx -> Rx Flow') @@ -101,11 +104,22 @@ def get_port_metrics(): port_metrics_request = api.port_metrics_request() port_metrics_request.deserialize(request.data.decode('utf-8')) port_metrics = api.port_metrics() - port_metrics.portmetric().portmetric() + port_metrics.metric().metric() return Response(port_metrics.serialize(), mimetype='application/json', status=200) +@app.route('/results/flow', methods=['POST']) +def get_flow_metrics(): + import snappi + api = snappi.api.Api() + flow_metrics_request = api.flow_metrics_request() + flow_metrics_request.deserialize(request.data.decode('utf-8')) + flow_metrics = api.flow_metrics() + flow_metrics.metric().metric() + return Response(flow_metrics.serialize(), + mimetype='application/json', + status=200) @app.after_request def after_request(resp): diff --git a/snappi/tests/test_snappi_list_serialization.py b/snappi/tests/test_snappi_list_serialization.py index bea0a4ad..9a6b284b 100644 --- a/snappi/tests/test_snappi_list_serialization.py +++ b/snappi/tests/test_snappi_list_serialization.py @@ -4,11 +4,12 @@ def test_snappi_list_serialization(api): """Test serialization and deserialization of Snappi list objects """ - port_metrics1 = api.port_metrics().portmetric().portmetric() - serialization = port_metrics1.serialize() - port_metrics2 = api.port_metrics() - port_metrics2.deserialize(serialization) - print(port_metrics2) + config = api.config() + config.ports.port(name='A').port(name='B').port(name='C') + serialization1 = config.ports.serialize() + config.ports.deserialize(serialization1) + serialization2 = config.ports.serialize() + assert(serialization1 == serialization2) if __name__ == '__main__':