def test_variables_dict(): assert all([ isinstance(var, attr.Attribute) for var in utils.variables_dict(ExampleProcess).values() ]) assert "other_attrib" not in utils.variables_dict(ExampleProcess)
def test_to_graphviz(model): g = to_graphviz(model) actual_nodes = _get_graph_nodes(g) actual_edges = _get_graph_edges(g) expected_nodes = list(model) expected_edges = [(dep_p_name, p_name) for p_name, p_deps in model.dependent_processes.items() for dep_p_name in p_deps] assert sorted(actual_nodes) == sorted(expected_nodes) assert set(actual_edges) == set(expected_edges) g = to_graphviz(model, show_inputs=True) actual_nodes = _get_graph_nodes(g) actual_edges = _get_graph_edges(g) expected_nodes += [var_name for _, var_name in model.input_vars] expected_edges += [ (_hash_variable(variables_dict(type(model[p_name]))[var_name]), p_name) for p_name, var_name in model.input_vars ] assert sorted(actual_nodes) == sorted(expected_nodes) assert set(actual_edges) == set(expected_edges) g = to_graphviz(model, show_variables=True) actual_nodes = _get_graph_nodes(g) expected_nodes = list(model) + [var_name for _, var_name in model.all_vars] assert sorted(actual_nodes) == sorted(expected_nodes) g = to_graphviz(model, show_only_variable=("profile", "u")) actual_nodes = _get_graph_nodes(g) expected_nodes = list(model) + ["u"] * 3 assert sorted(actual_nodes) == sorted(expected_nodes)
def test_get_target_variable(var_name, expected_cls, expected_var_name): _ExampleProcess = get_process_cls(ExampleProcess) expected_p_cls = get_process_cls(expected_cls) var = variables_dict(_ExampleProcess)[var_name] expected_var = variables_dict(expected_p_cls)[expected_var_name] actual_cls, actual_var = get_target_variable(var) if expected_p_cls is _ExampleProcess: assert actual_cls is None else: actual_p_cls = get_process_cls(actual_cls) assert actual_p_cls is expected_p_cls assert actual_var is expected_var