mirror of
https://gitea.wildfiregames.com/0ad/0ad
synced 2026-06-16 13:23:56 -07:00
This explicitly uses UTF-8 encoding when reading or writing files with Python. This is necessary as the default locale varies between operating systems.
52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
from os import path
|
|
|
|
import zero_ad
|
|
|
|
|
|
game = zero_ad.ZeroAD("http://localhost:6000")
|
|
scriptdir = path.dirname(path.realpath(__file__))
|
|
with open(path.join(scriptdir, "..", "samples", "arcadia.json"), encoding="utf-8") as f:
|
|
config = f.read()
|
|
|
|
with open(path.join(scriptdir, "fastactions.js"), encoding="utf-8") 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
|