blob: a9ccf8e524e5159936857f7eda2d77eebf069082 [file] [log] [blame]
# Copyright 2023 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import unittest
import json
from execution_params import ExecutionParams
class TestExecutionParams(unittest.TestCase):
TEST_URL = "fuchsia-pkg://fuchsia.com/pkg#meta/test_component.cm"
def test_init(self):
test_url = self.TEST_URL
test_args = ["arg1", "arg2"]
test_filters = ["filter1", "filter2"]
run_disabled_tests = True
parallel = "auto"
max_severity_logs = "error"
realm = "production"
execution_params = ExecutionParams(
test_url,
test_args,
test_filters,
run_disabled_tests,
parallel,
max_severity_logs,
realm,
)
self.assertEqual(execution_params.test_url, test_url)
self.assertEqual(execution_params.test_args, test_args)
self.assertEqual(execution_params.test_filters, test_filters)
self.assertTrue(execution_params.run_disabled_tests)
self.assertEqual(execution_params.parallel, parallel)
self.assertEqual(execution_params.max_severity_logs, max_severity_logs)
self.assertEqual(execution_params.realm, realm)
def test_initialize_from_json(self):
json_str = """{{
"test_url": "{}",
"test_args": ["arg1", "arg2"],
"test_filters": ["filter1", "filter2"],
"run_disabled_tests": true,
"parallel": "1",
"max_severity_logs": "WARN",
"realm": "/some/moniker"
}}""".format(
self.TEST_URL
)
execution_params = ExecutionParams.initialize_from_json(json_str)
self.assertEqual(execution_params.test_url, self.TEST_URL)
self.assertEqual(execution_params.test_args, ["arg1", "arg2"])
self.assertEqual(execution_params.test_filters, ["filter1", "filter2"])
self.assertTrue(execution_params.run_disabled_tests)
self.assertEqual(execution_params.parallel, "1")
self.assertEqual(execution_params.max_severity_logs, "WARN")
self.assertEqual(execution_params.realm, "/some/moniker")
def test_initialize_from_json_missing_url(self):
# Test with missing 'test_url' key in the JSON data
json_str = """{
"test_args": ["arg1", "arg2"],
"test_filters": ["filter1", "filter2"],
"run_disabled_tests": true,
"parallel": "1",
"max_severity_logs": "INFO",
"realm": "/some/moniker"
}"""
with self.assertRaises(ValueError) as context:
ExecutionParams.initialize_from_json(json_str)
self.assertEqual(
str(context.exception), "Missing 'test_url' in the JSON data"
)
def test_initialize_from_json_with_defaults(self):
json_data = {
"test_url": self.TEST_URL,
# Other keys are missing
}
json_str = json.dumps(json_data)
execution_params = ExecutionParams.initialize_from_json(json_str)
self.assertEqual(execution_params.test_url, self.TEST_URL)
self.assertEqual(execution_params.test_args, [])
self.assertEqual(execution_params.test_filters, [])
self.assertFalse(execution_params.run_disabled_tests)
self.assertIsNone(execution_params.parallel)
self.assertIsNone(execution_params.max_severity_logs)
self.assertIsNone(execution_params.realm)