Source code for ramble.test.context

# Copyright 2022-2026 The Ramble Authors
#
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
# https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
# <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
# option. This file may not be copied, modified, or distributed
# except according to those terms.

import unittest

from ramble.context import Context


[docs] class TestContext(unittest.TestCase):
[docs] def test_to_workspace_config(self): context = Context() context.context_name = "test_experiment" context.variables = {"foo": "bar"} config = context.to_workspace_config("test_app", "test_workload") self.assertIn("ramble", config) self.assertIn("applications", config["ramble"]) self.assertIn("test_app", config["ramble"]["applications"]) self.assertIn("workloads", config["ramble"]["applications"]["test_app"]) self.assertIn("test_workload", config["ramble"]["applications"]["test_app"]["workloads"]) self.assertIn( "experiments", config["ramble"]["applications"]["test_app"]["workloads"]["test_workload"], ) self.assertIn( "test_experiment", config["ramble"]["applications"]["test_app"]["workloads"]["test_workload"][ "experiments" ], ) self.assertIn( "variables", config["ramble"]["applications"]["test_app"]["workloads"]["test_workload"][ "experiments" ]["test_experiment"], ) self.assertEqual( config["ramble"]["applications"]["test_app"]["workloads"]["test_workload"][ "experiments" ]["test_experiment"]["variables"], {"foo": "bar"}, )
[docs] def test_to_workspace_config_all_attributes(self): context = Context() context.context_name = "test_experiment" context.variables = {"a": "b"} context.variants = {"c": "d"} context.env_variables = {"e": "f"} context.internals = {"g": "h"} context.chained_experiments = ["i"] context.modifiers = ["j"] context.template = "k" context.exclude = ["l"] context.zips = ["m"] context.tables = ["n"] context.tags = ["o"] context.matrices = {"p": "q"} context.n_repeats = 1 context.formatted_executables = {"r": "s"} context.success_criteria = "t" config = context.to_workspace_config("test_app", "test_workload") experiment_config = config["ramble"]["applications"]["test_app"]["workloads"][ "test_workload" ]["experiments"]["test_experiment"] self.assertEqual(experiment_config["variables"], {"a": "b"}) self.assertEqual(experiment_config["variants"], {"c": "d"}) self.assertEqual(experiment_config["env_vars"], {"e": "f"}) self.assertEqual(experiment_config["internals"], {"g": "h"}) self.assertEqual(experiment_config["chained_experiments"], ["i"]) self.assertEqual(experiment_config["modifiers"], ["j"]) self.assertEqual(experiment_config["template"], "k") self.assertEqual(experiment_config["exclude"], ["l"]) self.assertEqual(experiment_config["zips"], ["m"]) self.assertEqual(experiment_config["tables"], ["n"]) self.assertEqual(experiment_config["tags"], ["o"]) self.assertEqual(experiment_config["matrices"], {"p": "q"}) self.assertEqual(experiment_config["n_repeats"], 1) self.assertEqual(experiment_config["formatted_executables"], {"r": "s"}) self.assertEqual(experiment_config["success_criteria"], "t")