mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-06-22 09:06:35 +00:00
c49d4eedd0
To improve quality und uniformity of the included Python code this lints and formats the included Python files with ruff.
51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
import zero_ad
|
|
from os import path
|
|
|
|
game = zero_ad.ZeroAD("http://localhost:6000")
|
|
scriptdir = path.dirname(path.realpath(__file__))
|
|
with open(path.join(scriptdir, "..", "samples", "arcadia.json"), "r") as f:
|
|
config = f.read()
|
|
|
|
with open(path.join(scriptdir, "fastactions.js"), "r") as f:
|
|
fastactions = f.read()
|
|
|
|
|
|
def test_return_object():
|
|
game.reset(config)
|
|
result = game.evaluate('({"hello": "world"})')
|
|
assert type(result) is dict
|
|
assert result["hello"] == "world"
|
|
|
|
|
|
def test_return_null():
|
|
result = game.evaluate("null")
|
|
assert result is None
|
|
|
|
|
|
def test_return_string():
|
|
game.reset(config)
|
|
result = game.evaluate('"cat"')
|
|
assert result == "cat"
|
|
|
|
|
|
def test_fastactions():
|
|
state = game.reset(config)
|
|
game.evaluate(fastactions)
|
|
female_citizens = state.units(owner=1, type="female_citizen")
|
|
house_tpl = "structures/spart/house"
|
|
len(state.units(owner=1, type=house_tpl))
|
|
x = 680
|
|
z = 640
|
|
build_house = zero_ad.actions.construct(female_citizens, house_tpl, x, z, autocontinue=True)
|
|
# Check that they start building the house
|
|
state = game.step([build_house])
|
|
|
|
def new_house(_=None):
|
|
return state.units(owner=1, type=house_tpl)[0]
|
|
|
|
initial_health = new_house().health(ratio=True)
|
|
while new_house().health(ratio=True) == initial_health:
|
|
state = game.step()
|
|
|
|
assert new_house().health(ratio=True) >= 1.0
|