diff --git a/api/s0_base.py b/api/s0_base.py index a361435..bedcd28 100644 --- a/api/s0_base.py +++ b/api/s0_base.py @@ -163,7 +163,7 @@ def add_link(name: str, link_type: str, id: str, table_sql: str, table_undo_sql: def delete_link(name: str, link_type: str, id: str, table_sql: str, table_undo_sql: str) -> ChangeSet: - if not is_node(name, id): + if not is_link(name, id): return ChangeSet() with conn[name].cursor(row_factory=dict_row) as cur: diff --git a/test_tjnetwork.py b/test_tjnetwork.py index c910181..73d2629 100644 --- a/test_tjnetwork.py +++ b/test_tjnetwork.py @@ -62,6 +62,9 @@ class TestApi: assert change_set.added[0]['type'] == JUNCTION assert change_set.added[0]['id'] == "j1" + change_set = add_junction(p, "j1", 0.0, 10.0, 20.0) + assert len(change_set.added) == 0 + nodes = get_nodes(p) assert len(nodes) == 2 assert nodes[0] == "j0" @@ -72,6 +75,9 @@ class TestApi: assert change_set.deleted[0]['type'] == JUNCTION assert change_set.deleted[0]['id'] == "j1" + change_set = delete_junction(p, 'j1') + assert len(change_set.deleted) == 0 + nodes = get_nodes(p) assert len(nodes) == 1 assert nodes[0] == "j0" @@ -95,6 +101,9 @@ class TestApi: assert change_set.added[0]['type'] == RESERVOIR assert change_set.added[0]['id'] == "r0" + change_set = add_reservoir(p, "r0", 0.0, 10.0, 20.0) + assert len(change_set.added) == 0 + assert get_reservoir_head(p, 'r0') == 20.0 change_set = set_reservoir_head(p, 'r0', 100.0) assert change_set.updated[0]['type'] == RESERVOIR @@ -120,6 +129,9 @@ class TestApi: assert change_set.deleted[0]['type'] == RESERVOIR assert change_set.deleted[0]['id'] == "r0" + change_set = delete_reservoir(p, 'r0') + assert len(change_set.deleted) == 0 + self.leave(p) def test_tank(self): @@ -137,6 +149,9 @@ class TestApi: assert change_set.added[0]['type'] == TANK assert change_set.added[0]['id'] == "t1" + change_set = add_tank(p, "t1", 0.0, 10.0, 20.0) + assert len(change_set.added) == 0 + tanks = get_nodes(p) assert len(tanks) == 2 assert tanks[0] == 't0' @@ -216,13 +231,141 @@ class TestApi: assert change_set.deleted[0]['type'] == TANK assert change_set.deleted[0]['id'] == "t1" + change_set = delete_tank(p, "t1") + assert len(change_set.deleted) == 0 + tanks = get_nodes(p) assert len(tanks) == 0 self.leave(p) def test_pipe(self): - pass + p = "test_pipe" + self.enter(p) + + change_set = add_pipe(p, 'p1', 'j1', 'j2', 10.0, 10.0, 10.0, 10.0, PIPE_STATUS_CLOSED) + assert len(change_set.added) == 0 + + add_junction(p, 'j1', 0.0, 0.0, 0.0) + add_junction(p, 'j2', 10.0, 10.0, 0.0) + add_junction(p, 'j3', 0.0, 0.0, 0.0) + add_junction(p, 'j4', 10.0, 10.0, 0.0) + assert is_junction(p, 'j1') + assert is_junction(p, 'j2') + assert is_junction(p, 'j3') + assert is_junction(p, 'j4') + + assert not is_link(p, 'p1') + + change_set = add_pipe(p, 'p1', 'j1', 'j2', 10.0, 10.0, 10.0, 10.0, "XXX") + assert len(change_set.added) == 0 + + change_set = add_pipe(p, 'p1', 'j1', 'j1', 10.0, 10.0, 10.0, 10.0, PIPE_STATUS_CLOSED) + assert len(change_set.added) == 0 + + change_set = add_pipe(p, 'p1', 'j1', 'j2', 10.0, 10.0, 10.0, 10.0, PIPE_STATUS_CLOSED) + assert len(change_set.added) == 1 + assert change_set.added[0]['type'] == PIPE + assert change_set.added[0]['id'] == "p1" + + change_set = add_pipe(p, 'p1', 'j1', 'j2', 10.0, 10.0, 10.0, 10.0, PIPE_STATUS_CLOSED) + assert len(change_set.added) == 0 + + pipes = get_links(p) + assert len(pipes) == 1 + + assert get_pipe_node1(p, 'p1') == 'j1' + assert get_pipe_node2(p, 'p1') == 'j2' + assert get_pipe_length(p, 'p1') == 10.0 + assert get_pipe_diameter(p, 'p1') == 10.0 + assert get_pipe_roughness(p, 'p1') == 10.0 + assert get_pipe_minor_loss(p, 'p1') == 10.0 + assert get_pipe_status(p, 'p1') == PIPE_STATUS_CLOSED + + change_set = set_pipe_node1(p, 'p1', 'j2') + assert len(change_set.updated) == 0 + change_set = set_pipe_node2(p, 'p1', 'j1') + assert len(change_set.updated) == 0 + change_set = set_pipe_status(p, 'p1', "XXX") + assert len(change_set.updated) == 0 + + change_set = set_pipe_node1(p, 'p1', 'j3') + assert len(change_set.updated) == 1 + assert change_set.updated[0]['type'] == PIPE + assert change_set.updated[0]['id'] == 'p1' + assert change_set.updated[0]['property'] == 'node1' + + change_set = set_pipe_node2(p, 'p1', 'j4') + assert len(change_set.updated) == 1 + assert change_set.updated[0]['type'] == PIPE + assert change_set.updated[0]['id'] == 'p1' + assert change_set.updated[0]['property'] == 'node2' + + change_set = set_pipe_length(p, 'p1', 100.0) + assert len(change_set.updated) == 1 + assert change_set.updated[0]['type'] == PIPE + assert change_set.updated[0]['id'] == 'p1' + assert change_set.updated[0]['property'] == 'length' + + change_set = set_pipe_diameter(p, 'p1', 100.0) + assert len(change_set.updated) == 1 + assert change_set.updated[0]['type'] == PIPE + assert change_set.updated[0]['id'] == 'p1' + assert change_set.updated[0]['property'] == 'diameter' + + change_set = set_pipe_roughness(p, 'p1', 100.0) + assert len(change_set.updated) == 1 + assert change_set.updated[0]['type'] == PIPE + assert change_set.updated[0]['id'] == 'p1' + assert change_set.updated[0]['property'] == 'roughness' + + change_set = set_pipe_minor_loss(p, 'p1', 100.0) + assert len(change_set.updated) == 1 + assert change_set.updated[0]['type'] == PIPE + assert change_set.updated[0]['id'] == 'p1' + assert change_set.updated[0]['property'] == 'minor_loss' + + change_set = set_pipe_status(p, 'p1', PIPE_STATUS_OPEN) + assert len(change_set.updated) == 1 + assert change_set.updated[0]['type'] == PIPE + assert change_set.updated[0]['id'] == 'p1' + assert change_set.updated[0]['property'] == 'status' + + assert get_pipe_node1(p, 'p1') == 'j3' + assert get_pipe_node2(p, 'p1') == 'j4' + assert get_pipe_length(p, 'p1') == 100.0 + assert get_pipe_diameter(p, 'p1') == 100.0 + assert get_pipe_roughness(p, 'p1') == 100.0 + assert get_pipe_minor_loss(p, 'p1') == 100.0 + assert get_pipe_status(p, 'p1') == PIPE_STATUS_OPEN + + change_set = add_pipe(p, 'p2', 'j1', 'j2', 10.0, 10.0, 10.0, 10.0, PIPE_STATUS_CLOSED) + assert len(change_set.added) == 1 + assert change_set.added[0]['type'] == PIPE + assert change_set.added[0]['id'] == "p2" + + pipes = get_links(p) + assert len(pipes) == 2 + + change_set = delete_pipe(p, 'p') + assert len(change_set.deleted) == 0 + + assert is_pipe(p, 'p1') + + change_set = delete_pipe(p, 'p1') + assert len(change_set.deleted) == 1 + assert change_set.deleted[0]['type'] == PIPE + assert change_set.deleted[0]['id'] == "p1" + + pipes = get_links(p) + assert len(pipes) == 1 + + change_set = delete_pipe(p, 'p2') + assert len(change_set.deleted) == 1 + assert change_set.deleted[0]['type'] == PIPE + assert change_set.deleted[0]['id'] == "p2" + + self.leave(p) def test_pump(self): pass