forked from townforge/townforge
functional_tests: more runestone tests: demolish, remove blocks
This commit is contained in:
parent
1a8055684e
commit
b5277a67ef
@ -48,6 +48,7 @@ FIRST_CITY_Y = 0
|
||||
ITEM_STONE = 1
|
||||
ITEM_MEDIUM_STONE = 2
|
||||
ITEM_WOOD = 4
|
||||
ITEM_VEGETATION = 7
|
||||
ITEM_RUNESTONE = 8
|
||||
MATERIAL_VARIANT_PLOUGHED_FIELD = 32
|
||||
MATERIAL_LOCKED_PINE = 26
|
||||
@ -969,7 +970,7 @@ class CCTest():
|
||||
assert not 'data' in res.tiles[i]
|
||||
|
||||
# build with build_height
|
||||
res = self.wallet[2].cc_build(flag_id, 0, 0, 1, 3, block_data = [ITEM_WOOD, ITEM_WOOD, ITEM_WOOD], encoded = False, build_height = 2)
|
||||
res = self.wallet[2].cc_build(flag_id, 0, 0, 1, 3, block_data = [ITEM_WOOD, ITEM_WOOD, ITEM_VEGETATION], encoded = False, build_height = 2)
|
||||
assert len(res.tx_hash) == 64
|
||||
|
||||
self.generate_blocks('TF1MM8HqWBathu8hS5mwMNHm1da3cZCzg2rkqWLKCxpUarKtPszP3MjiocrJeLvph4AghgYu1AXonCmckfEuyE8Q2FFm8jNdiz3', 1)
|
||||
@ -989,7 +990,7 @@ class CCTest():
|
||||
elif i == 90:
|
||||
assert res.tiles[i].data == [ITEM_STONE, 0, ITEM_WOOD]
|
||||
elif i == 180:
|
||||
assert res.tiles[i].data == [0, 0, ITEM_WOOD]
|
||||
assert res.tiles[i].data == [0, 0, ITEM_VEGETATION]
|
||||
else:
|
||||
assert not 'data' in res.tiles[i]
|
||||
|
||||
@ -1058,6 +1059,42 @@ class CCTest():
|
||||
assert len(res.tx_hash) == 64
|
||||
self.generate_blocks('TF1MM8HqWBathu8hS5mwMNHm1da3cZCzg2rkqWLKCxpUarKtPszP3MjiocrJeLvph4AghgYu1AXonCmckfEuyE8Q2FFm8jNdiz3', 1)
|
||||
|
||||
# can't be demolished with a carved runestone on it
|
||||
res = daemon.cc_get_flag(flag_id)
|
||||
self.assert_exception(lambda: self.wallet[2].cc_demolish(flag_id, res.role, res.economic_power, res.repair, res.construction_height, res.last_service_height, res.service_price if 'service_price' in res else 0, res.name if 'name' in res else '', res.ignore, res.active, res.budget, res.packed_tiles if 'packed_tiles' in res else []))
|
||||
# remove the runestone - it can only be removed manually
|
||||
res = daemon.cc_get_runestones([{'flag': flag_id, 'x': 2, 'y': 4, 'h': 1}])
|
||||
assert len(res.runestones) == 1
|
||||
self.assert_exception(lambda: self.wallet[2].cc_build(flag_id, 2, 4, 1, 1, block_data = [ITEM_RUNESTONE], encoded = False, build_height = 1, remove = True))
|
||||
res = self.wallet[2].cc_carve_runestone(flag_id, 2, 4, 1, "bar", "", 0)
|
||||
self.generate_blocks('TF1MM8HqWBathu8hS5mwMNHm1da3cZCzg2rkqWLKCxpUarKtPszP3MjiocrJeLvph4AghgYu1AXonCmckfEuyE8Q2FFm8jNdiz3', 1)
|
||||
self.assert_exception(lambda: daemon.cc_get_runestones([{'flag': flag_id, 'x': 2, 'y': 4, 'h': 1}]))
|
||||
self.wallet[2].cc_build(flag_id, 2, 4, 1, 1, block_data = [ITEM_RUNESTONE], encoded = False, build_height = 1, remove = True)
|
||||
assert len(res.tx_hash) == 64
|
||||
self.generate_blocks('TF1MM8HqWBathu8hS5mwMNHm1da3cZCzg2rkqWLKCxpUarKtPszP3MjiocrJeLvph4AghgYu1AXonCmckfEuyE8Q2FFm8jNdiz3', 1)
|
||||
self.assert_exception(lambda: daemon.cc_get_runestones([{'flag': flag_id, 'x': 2, 'y': 4, 'h': 1}]))
|
||||
|
||||
# now it can be removed
|
||||
res = daemon.cc_get_flag(flag_id, get_packed_tiles = True)
|
||||
self.wallet[2].cc_demolish(flag_id, res.role, res.economic_power, res.repair, res.construction_height, res.last_service_height, res.service_price if 'service_price' in res else 0, res.name if 'name' in res else '', res.ignore, res.active, res.budget, res.packed_tiles if 'packed_tiles' in res else [])
|
||||
self.generate_blocks('TF1MM8HqWBathu8hS5mwMNHm1da3cZCzg2rkqWLKCxpUarKtPszP3MjiocrJeLvph4AghgYu1AXonCmckfEuyE8Q2FFm8jNdiz3', 1)
|
||||
self.assert_exception(lambda: daemon.cc_get_runestones([{'flag': flag_id, 'x': 2, 'y': 4, 'h': 1}]))
|
||||
|
||||
# revert the destruction
|
||||
daemon.pop_blocks(1)
|
||||
daemon.flush_txpool()
|
||||
|
||||
# add it back
|
||||
res = self.wallet[2].cc_build(flag_id, 2, 4, 1, 1, block_data = [ITEM_RUNESTONE], encoded = False, build_height = 1)
|
||||
assert len(res.tx_hash) == 64
|
||||
self.generate_blocks('TF1MM8HqWBathu8hS5mwMNHm1da3cZCzg2rkqWLKCxpUarKtPszP3MjiocrJeLvph4AghgYu1AXonCmckfEuyE8Q2FFm8jNdiz3', 1)
|
||||
self.assert_exception(lambda: daemon.cc_get_runestones([{'flag': flag_id, 'x': 2, 'y': 4, 'h': 1}]))
|
||||
res = self.wallet[2].cc_carve_runestone(flag_id, 2, 4, 1, "", "bar", 0)
|
||||
assert len(res.tx_hash) == 64
|
||||
self.generate_blocks('TF1MM8HqWBathu8hS5mwMNHm1da3cZCzg2rkqWLKCxpUarKtPszP3MjiocrJeLvph4AghgYu1AXonCmckfEuyE8Q2FFm8jNdiz3', 1)
|
||||
res = daemon.cc_get_runestones([{'flag': flag_id, 'x': 2, 'y': 4, 'h': 1}])
|
||||
assert len(res.runestones) == 1
|
||||
|
||||
def test_mortgages(self):
|
||||
daemon = self.daemon
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user