testcase#

class TestCase(spec: ResolvedSpec, workspace: ExecutionSpace, dependencies: list[TestCase] | None = None)#

Bases: object

property id: str#
property exclusive: bool#
get_artifacts() list[str]#
property stdout: str#
property stderr: str | None#
property file: Path#
property name: str#
property timeout: float#
total_timeout() float#
property attributes: dict[str, Any]#
property mask: Mask#
property viewpath: str#
display_name(**kwargs) str#
add_measurement(name: str, value: Any) None#
set_status(state: str | None = None, category: str | None = None, status: str | None = None, reason: str | None = None, code: int = -1) None#
add_variables(**kwds: str) None#
statline(style: str = 'none') str#
set_attribute(name: str, value: Any) None#
set_attributes(**kwds: Any) None#
get_attribute(name: str, default: None = None, /) None | Any#
property cpus: int#
property gpus: int#
property cpu_ids: list[str]#
property gpu_ids: list[str]#
cost() float#
property runtime: float#
size() float#
property resources: dict[str, list[dict]]#

resources is of the form:

resources[type] = [{"id": str, "slots": int}]

If the test required 2 cpus and 2 gpus, resources would look like:

resources = {
    "cpus": [{"id": "1", "slots": 1}, {"id": "2", "slots": 1}],
    "gpus": [{"id": "1", "slots": 1}, {"id": "2", "slots": 1}],
}
assign_resources(arg: dict[str, list[dict]]) None#
free_resources() dict[str, list[dict]]#
required_resources() list[dict[str, Any]]#
property status: Status#
property lockfile: Path#
create_workspace() None#
restore_workspace() None#
setup() None#
run() None#
getstate() dict[str, Any]#
setstate(data: dict[str, Any]) None#

The companion of getstate, save results from the test ran in a child process in the parent process

do_baseline() None#
update_status_from_exit_code(*, code: int | str) None#
refresh() None#
set_runtime_env(env: MutableMapping[str, str]) None#
get_environ_from_spec() dict[str, str | None]#
get_resource_parameters_from_spec() dict[str, int]#

Default parameters used to set up resources required by test case

teardown() None#
finish() None#
save() None#
asdict() dict[str, Any]#
serialize() str#
set_dependency_based_status() None#
dep_condition_flags() list[str]#
read_output(compress: bool = False) str#
load_cached_runs() dict[str, Any] | None#
cache_last_run() None#

store relevant information for this run

load_testcase_from_file(arg: Path | str | None) TestCase#
load_testcase_from_state(lock_data: dict) TestCase#
class Measurements(data: dict[str, typing.Any]=<factory>)#

Bases: object

data: dict[str, Any]#
add_measurement(name: str, value: Any) None#
update(measurements: dict) None#
reset() None#
classmethod from_dict(data: dict[str, Any]) Measurements#
asdict() dict[str, Any]#
items() Generator[tuple[str, Any], None, None]#
find_cache_dir(start: Path) Path | None#
ceil_div(a: int, b: int) int#
exception MissingSourceError#

Bases: Exception

exception InvalidTypeError(name, value)#

Bases: Exception