Add test case for batch commands

This commit is contained in:
WQY\qiong
2023-03-31 13:19:09 +08:00
parent 71f7dbc233
commit 8de01a3e02

View File

@@ -249,33 +249,18 @@ class TestApi:
open_project(p)
nls : list[tuple[str, str]] = []
nodes = get_nodes(p)
for node in nodes:
nls.append(('node', node))
links = get_links(p)
for _ in range(10):
random.shuffle(nls)
for nl in nls:
if nl[0] == 'node':
node = nl[1]
if is_junction(p, node):
delete_junction(p, ChangeSet({'id': node}))
if is_reservoir(p, node):
delete_reservoir(p, ChangeSet({'id': node}))
if is_tank(p, node):
delete_tank(p, ChangeSet({'id': node}))
else:
link = nl[1]
if is_pipe(p, link):
delete_pipe(p, ChangeSet({'id': link}))
if is_pump(p, link):
delete_pump(p, ChangeSet({'id': link}))
if is_valve(p, link):
delete_valve(p, ChangeSet({'id': link}))
random.shuffle(nodes)
for node in nodes:
if is_junction(p, node):
delete_junction(p, ChangeSet({'id': node}))
if is_reservoir(p, node):
delete_reservoir(p, ChangeSet({'id': node}))
if is_tank(p, node):
delete_tank(p, ChangeSet({'id': node}))
for node in nodes:
assert is_node(p, node) == False
@@ -302,33 +287,99 @@ class TestApi:
open_project(p)
nls : list[tuple[str, str]] = []
nodes = get_nodes(p)
links = get_links(p)
for link in links:
nls.append(('link', link))
for _ in range(10):
random.shuffle(nls)
for nl in nls:
if nl[0] == 'node':
node = nl[1]
if is_junction(p, node):
delete_junction(p, ChangeSet({'id': node}))
if is_reservoir(p, node):
delete_reservoir(p, ChangeSet({'id': node}))
if is_tank(p, node):
delete_tank(p, ChangeSet({'id': node}))
else:
link = nl[1]
if is_pipe(p, link):
delete_pipe(p, ChangeSet({'id': link}))
if is_pump(p, link):
delete_pump(p, ChangeSet({'id': link}))
if is_valve(p, link):
delete_valve(p, ChangeSet({'id': link}))
random.shuffle(links)
for link in links:
if is_pipe(p, link):
delete_pipe(p, ChangeSet({'id': link}))
if is_pump(p, link):
delete_pump(p, ChangeSet({'id': link}))
if is_valve(p, link):
delete_valve(p, ChangeSet({'id': link}))
for node in nodes:
assert is_node(p, node)
for link in links:
assert is_link(p, link) == False
assert get_links(p) == []
op = get_restore_operation(p)
pick_operation(p, op)
for node in nodes:
assert is_node(p, node)
for link in links:
assert is_link(p, link)
self.leave(p)
def test_delete_nodes_then_restore_commands(self):
p = 'test_delete_nodes_then_restore_commands'
read_inp(p, f'./inp/net3.inp', '2')
open_project(p)
nodes = get_nodes(p)
links = get_links(p)
for _ in range(10):
random.shuffle(nodes)
batch = ChangeSet()
for node in nodes:
if is_junction(p, node):
batch.delete({'type' : 'junction', 'id': node })
if is_reservoir(p, node):
batch.delete({'type' : 'reservoir', 'id': node })
if is_tank(p, node):
batch.delete({'type' : 'tank', 'id': node })
execute_batch_commands(p, batch)
for node in nodes:
assert is_node(p, node) == False
for link in links:
assert is_link(p, link) == False
assert get_nodes(p) == []
assert get_links(p) == []
op = get_restore_operation(p)
pick_operation(p, op)
for node in nodes:
assert is_node(p, node)
for link in links:
assert is_link(p, link)
self.leave(p)
def test_delete_links_then_restore_commands(self):
p = 'test_delete_links_then_restore_commands'
read_inp(p, f'./inp/net3.inp', '2')
open_project(p)
nodes = get_nodes(p)
links = get_links(p)
for _ in range(10):
random.shuffle(links)
batch = ChangeSet()
for link in links:
if is_pipe(p, link):
batch.delete({'type' : 'pipe', 'id': link })
if is_pump(p, link):
batch.delete({'type' : 'pump', 'id': link })
if is_valve(p, link):
batch.delete({'type' : 'valve', 'id': link })
execute_batch_commands(p, batch)
for node in nodes:
assert is_node(p, node)