def test_construct_nodes_from_treatment_facility_request_pre_validation( contexts, valid_treatment_facility_dicts, pre_validated ): context = contexts["default"] facilities = context["api_recognize"]["treatment_facility"]["facility_type"] model_map = {k: dct["validator"] for k, dct in facilities.items()} _tmnt_ls = [] for k, model in model_map.items(): dct = valid_treatment_facility_dicts[model] dct["facility_type"] = k _tmnt_ls.append(dct) tmnt_facilities = {"treatment_facilities": _tmnt_ls} treatment_facilities = initialize_treatment_facilities( tmnt_facilities, pre_validated=pre_validated, context=context ) tmnt_lst = treatment_facilities["treatment_facilities"] for m in tmnt_lst: # check that the joins happened assert m.get("rain_gauge") is not None if not pre_validated: # check that the model got validated assert m.get("valid_model") is not None
def background_initialize_treatment_facilities(treatment_facilities, pre_validated, context): return initialize_treatment_facilities( # pragma: no cover treatment_facilities=treatment_facilities, pre_validated=pre_validated, context=context, )
def test_construct_nodes_from_treatment_facility_request( contexts, valid_treatment_facilities, ctxt_key, has_met_data ): context = contexts[ctxt_key] tmnt_facilities = {"treatment_facilities": valid_treatment_facilities} treatment_facilities = initialize_treatment_facilities( tmnt_facilities, pre_validated=True, context=context ) tmnt_lst = treatment_facilities["treatment_facilities"] assert len(tmnt_lst) == len(valid_treatment_facilities) for n in tmnt_lst: if has_met_data: assert n.get("rain_gauge") is not None else: assert n.get("rain_gauge") is None
def initialize_graph( watershed: Dict[str, Any], treatment_pre_validated: bool, context: Dict[str, Any], ) -> Tuple[nx.DiGraph, List[str]]: errors: List[str] = [] g = graph_factory(watershed["graph"]) if not is_valid(g): err_msg = "NetworkValidationError: " _keys = ["node_cycles", "edge_cycles", "multiple_out_edges", "duplicate_edges"] for key, value in zip(_keys, validate_network(g)): if len(value) > 0: err_msg += ", " + ": ".join([key, str(value)]) errors.append(err_msg) land_surface = land_surface_loading(watershed, details=False, context=context) errors.extend(land_surface["errors"]) treatment_facilities = initialize_treatment_facilities( watershed, pre_validated=treatment_pre_validated, context=context ) errors.extend(treatment_facilities["errors"]) treatment_sites = initialize_treatment_sites(watershed, context=context,) errors.extend(treatment_sites["errors"]) data: Dict[str, Any] = {} for dictlist in [ watershed.get("previous_results", []), land_surface.get("summary", []), treatment_facilities.get("treatment_facilities", []), treatment_sites.get("treatment_sites", []), ]: node_data = dictlist_to_dict(dictlist, "node_id") for n, _data in node_data.items(): if n not in data: data[n] = {} data[n].update(_data) nx.set_node_attributes(g, data) return g, errors
def test_construct_nodes_from_treatment_facility_request_checkval( contexts, valid_treatment_facility_dicts, ctxt_key, has_met_data, model, checkfor, ): context = contexts[ctxt_key] tmnt_facilities = {"treatment_facilities": [valid_treatment_facility_dicts[model]]} treatment_facilities = initialize_treatment_facilities( tmnt_facilities, pre_validated=True, context=context ) tmnt_lst = treatment_facilities["treatment_facilities"][0] check_val = tmnt_lst.get(checkfor) assert isinstance(check_val, float) assert tmnt_lst.get("errors") is None if has_met_data: assert tmnt_lst.get("rain_gauge") is not None else: assert tmnt_lst.get("rain_gauge") is None