diff options
Diffstat (limited to 'resources/libraries/python/model')
-rw-r--r-- | resources/libraries/python/model/ExportResult.py | 54 | ||||
-rw-r--r-- | resources/libraries/python/model/export_json.py | 3 |
2 files changed, 46 insertions, 11 deletions
diff --git a/resources/libraries/python/model/ExportResult.py b/resources/libraries/python/model/ExportResult.py index d74a6ab5df..16c6b89fb3 100644 --- a/resources/libraries/python/model/ExportResult.py +++ b/resources/libraries/python/model/ExportResult.py @@ -1,4 +1,4 @@ -# Copyright (c) 2021 Cisco and/or its affiliates. +# Copyright (c) 2022 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -39,18 +39,13 @@ def export_dut_type_and_version(dut_type=u"unknown", dut_version=u"unknown"): else: # We want to set a variable in higher level suite setup # to be available to test setup several levels lower. - # Documentation [0] looks like "children" is a keyword argument, - # but code [1] lines 1458 and 1511-1512 show - # it is just last stringy argument. - # [0] http://robotframework.org/robotframework/ - # 3.1.2/libraries/BuiltIn.html#Set%20Suite%20Variable - # [1] https://github.com/robotframework/robotframework/blob/ - # v3.1.2/src/robot/libraries/BuiltIn.py BuiltIn().set_suite_variable( u"\\${DUT_TYPE}", dut_type, u"children=True" ) if dut_version == u"unknown": - dut_version = BuiltIn().get_variable_value(u"\\${DUT_VERSION}", u"unknown") + dut_version = BuiltIn().get_variable_value( + u"\\${DUT_VERSION}", u"unknown" + ) if dut_type == u"unknown": raise RuntimeError(u"Dut version not provided.") else: @@ -58,10 +53,49 @@ def export_dut_type_and_version(dut_type=u"unknown", dut_version=u"unknown"): u"\\${DUT_VERSION}", dut_version, u"children=True" ) data = get_export_data() - data[u"dut_type"] = dut_type + data[u"dut_type"] = dut_type.lower() data[u"dut_version"] = dut_version +def export_tg_type_and_version(tg_type=u"unknown", tg_version=u"unknown"): + """Export the arguments as tg type and version. + + Robot tends to convert "none" into None, hence the unusual default values. + + If either argument is missing, the value from robot variable is used. + If argument is present, the value is also stored to robot suite variable. + + :param tg_type: TG type, e.g. TREX. + :param tg_version: TG version as determined by the caller. + :type tg_type: Optional[str] + :type tg_version: Optiona[str] + :raises RuntimeError: If value is neither in argument not robot variable. + """ + if tg_type == u"unknown": + tg_type = BuiltIn().get_variable_value(u"\\${TG_TYPE}", u"unknown") + if tg_type == u"unknown": + raise RuntimeError(u"TG type not provided.") + else: + # We want to set a variable in higher level suite setup + # to be available to test setup several levels lower. + BuiltIn().set_suite_variable( + u"\\${TG_TYPE}", tg_type, u"children=True" + ) + if tg_version == u"unknown": + tg_version = BuiltIn().get_variable_value( + u"\\${TG_VERSION}", u"unknown" + ) + if tg_type == u"unknown": + raise RuntimeError(u"TG version not provided.") + else: + BuiltIn().set_suite_variable( + u"\\${TG_VERSION}", tg_version, u"children=True" + ) + data = get_export_data() + data[u"tg_type"] = tg_type.lower() + data[u"tg_version"] = tg_version + + def append_mrr_value(mrr_value, unit): """Store mrr value to proper place so it is dumped into json. diff --git a/resources/libraries/python/model/export_json.py b/resources/libraries/python/model/export_json.py index b5d4328084..840c49fa70 100644 --- a/resources/libraries/python/model/export_json.py +++ b/resources/libraries/python/model/export_json.py @@ -34,7 +34,7 @@ from robot.libraries.BuiltIn import BuiltIn from resources.libraries.python.Constants import Constants from resources.libraries.python.model.ExportResult import ( - export_dut_type_and_version + export_dut_type_and_version, export_tg_type_and_version ) from resources.libraries.python.model.mem2raw import write_raw_output from resources.libraries.python.model.raw2info import convert_content_to_info @@ -167,6 +167,7 @@ class export_json(): self.raw_data[u"hosts"] = set() self.raw_data[u"log"] = list() export_dut_type_and_version() + export_tg_type_and_version() def start_suite_teardown_export(self): """Set new file path, initialize data for the suite teardown. |