diff options
Diffstat (limited to 'tests/test_backend_executor_output_consumer.py')
-rw-r--r-- | tests/test_backend_executor_output_consumer.py | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/tests/test_backend_executor_output_consumer.py b/tests/test_backend_executor_output_consumer.py deleted file mode 100644 index 537084f..0000000 --- a/tests/test_backend_executor_output_consumer.py +++ /dev/null @@ -1,100 +0,0 @@ -# SPDX-FileCopyrightText: Copyright 2022, Arm Limited and/or its affiliates. -# SPDX-License-Identifier: Apache-2.0 -"""Tests for the output parsing.""" -from __future__ import annotations - -import base64 -import json -from typing import Any - -import pytest - -from mlia.backend.executor.output_consumer import Base64OutputConsumer -from mlia.backend.executor.output_consumer import OutputConsumer - - -OUTPUT_MATCH_ALL = bytearray( - """ -String1: My awesome string! -String2: STRINGS_ARE_GREAT!!! -Int: 12 -Float: 3.14 -""", - encoding="utf-8", -) - -OUTPUT_NO_MATCH = bytearray( - """ -This contains no matches... -Test1234567890!"£$%^&*()_+@~{}[]/.,<>?| -""", - encoding="utf-8", -) - -OUTPUT_PARTIAL_MATCH = bytearray( - "String1: My awesome string!", - encoding="utf-8", -) - -REGEX_CONFIG = { - "FirstString": {"pattern": r"String1.*: (.*)", "type": "str"}, - "SecondString": {"pattern": r"String2.*: (.*)!!!", "type": "str"}, - "IntegerValue": {"pattern": r"Int.*: (.*)", "type": "int"}, - "FloatValue": {"pattern": r"Float.*: (.*)", "type": "float"}, -} - -EMPTY_REGEX_CONFIG: dict[str, dict[str, Any]] = {} - -EXPECTED_METRICS_ALL = { - "FirstString": "My awesome string!", - "SecondString": "STRINGS_ARE_GREAT", - "IntegerValue": 12, - "FloatValue": 3.14, -} - -EXPECTED_METRICS_PARTIAL = { - "FirstString": "My awesome string!", -} - - -@pytest.mark.parametrize( - "expected_metrics", - [ - EXPECTED_METRICS_ALL, - EXPECTED_METRICS_PARTIAL, - ], -) -def test_base64_output_consumer(expected_metrics: dict) -> None: - """ - Make sure the Base64OutputConsumer yields valid results. - - I.e. return an empty dict if either the input or the config is empty and - return the parsed metrics otherwise. - """ - parser = Base64OutputConsumer() - assert isinstance(parser, OutputConsumer) - - def create_base64_output(expected_metrics: dict) -> bytearray: - json_str = json.dumps(expected_metrics, indent=4) - json_b64 = base64.b64encode(json_str.encode("utf-8")) - return ( - OUTPUT_MATCH_ALL # Should not be matched by the Base64OutputConsumer - + f"<{Base64OutputConsumer.TAG_NAME}>".encode() - + bytearray(json_b64) - + f"</{Base64OutputConsumer.TAG_NAME}>".encode() - + OUTPUT_NO_MATCH # Just to add some difficulty... - ) - - output = create_base64_output(expected_metrics) - - consumed = False - for line in output.splitlines(): - if parser.feed(line.decode("utf-8")): - consumed = True - assert consumed # we should have consumed at least one line - - res = parser.parsed_output - assert len(res) == 1 - assert isinstance(res, list) - for val in res: - assert val == expected_metrics |