def test_conditions_returns_all_native_conditions(node: agent.Node): conditions = node.conditions() assert conditions is not None conditions_dict = conditions.dict() assert len(conditions_dict) == len(agent.NATIVE_NODE_CONDITION_TYPES) assert all(condition_type.lower() in conditions_dict for condition_type in agent.NATIVE_NODE_CONDITION_TYPES)
def test_conditions_falsy_vs_status(node: agent.Node): conditions = node.conditions() assert conditions is not None falsy_conditions = [ c for _, c in conditions if isinstance(c, section.FalsyNodeCondition) ] assert len(falsy_conditions) > 0 assert all(c.is_ok() is (c.status == api.NodeConditionStatus.FALSE) for c in falsy_conditions)
def test_conditions_truthy_vs_status(node: agent.Node): conditions = node.conditions() assert conditions is not None truthy_conditions = [ c for _, c in conditions if isinstance(c, section.TruthyNodeCondition) ] assert len(truthy_conditions) > 0 assert all(c.is_ok() is (c.status == api.NodeConditionStatus.TRUE) for c in truthy_conditions)
def test_conditions_respects_status_conditions(node: agent.Node): api_conditions = node.status.conditions assert api_conditions is not None native_conditions = [ cond for cond in api_conditions if cond.type_ in agent.NATIVE_NODE_CONDITION_TYPES ] conditions = node.conditions() assert conditions is not None conditions_dict = conditions.dict() assert len(conditions_dict) == len(native_conditions) assert all( conditions_dict[condition.type_.lower()]["status"] == condition.status for condition in native_conditions)
def test_conditions_with_status_conditions_none(node: agent.Node): node.status.conditions = None conditions = node.conditions() assert conditions is None