From adb9ed31c14f25b1afb25ce850164becece1c3c8 Mon Sep 17 00:00:00 2001 From: Kirill Date: Mon, 24 Aug 2026 15:47:32 +0300 Subject: [PATCH] feat(models): Added Context class Context stores execution state: - variables: static test variables - extracted: data extracted from responses - resolve(): replaces {{var}} placeholders with values --- models/context.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 models/context.py diff --git a/models/context.py b/models/context.py new file mode 100644 index 0000000..82f75c1 --- /dev/null +++ b/models/context.py @@ -0,0 +1,19 @@ +from typing import Any +from .itm import TestModel + + +class Context: + def __init__(self, config: TestModel): + self.config = config + self.variables: dict[str, str] = config.variables.copy() + self.extracted: dict[str, Any] = {} + + def resolve(self, template: str) -> str: + result = template + all_vars = {**self.variables, **self.extracted} + for key, value in all_vars.items(): + result = result.replace(f"{{{{{key}}}}}", str(value)) + return result + + def set_extracted(self, name: str, value: Any): + self.extracted[name] = value