Coverage for ocp_resources/chaos_engine.py: 0%

23 statements  

« prev     ^ index     » next       coverage.py v7.6.10, created at 2025-01-30 10:48 +0200

1# -*- coding: utf-8 -*- 

2 

3from typing import Any, Dict, List 

4from ocp_resources.resource import NamespacedResource 

5 

6 

7class ChaosEngine(NamespacedResource): 

8 api_group = NamespacedResource.ApiGroup.LITMUS_IO 

9 

10 class EngineStatus: 

11 INITIALIZED: str = "initialized" 

12 COMPLETED: str = "completed" 

13 STOPPED: str = "stopped" 

14 

15 @property 

16 def engine_status(self) -> str: 

17 return self.instance.status["engineStatus"] 

18 

19 @property 

20 def experiments_status(self) -> Dict[str, Dict[str, Any]]: 

21 experiments: List[Dict[Any, Any]] = self.instance.status["experiments"] 

22 ret_value = {} 

23 for experiment in experiments: 

24 exp = {"verdict": experiment["verdict"], "status": experiment["status"]} 

25 ret_value[experiment["name"]] = exp 

26 return ret_value 

27 

28 @property 

29 def success(self) -> bool: 

30 exps = self.experiments_status 

31 return all(exp["verdict"] == "Pass" for exp in exps.values())