From 960a54f3d27d8d8a0724aac88641136d13d2000c Mon Sep 17 00:00:00 2001 From: Thanatos Date: Fri, 5 Jan 2024 20:09:54 +0100 Subject: [PATCH] Test requirements --- pyproject.toml | 2 + requirements.txt | 1 + tests/formats/test_lua.py | 87 +++++++++++++++++++++++++-------------- 3 files changed, 59 insertions(+), 31 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 22cd27ff..2817fd44 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,6 +3,7 @@ requires = [ "setuptools>=61.2", "setuptools_scm[toml]>=3.4.3", "construct>=2.10.0", + "randovania-lupa>=2.0.0", "zstd", ] build-backend = "setuptools.build_meta" @@ -22,6 +23,7 @@ dynamic = ["version"] dependencies = [ "construct>=2.10.0", + "randovania-lupa>=2.0.0", "zstd", ] diff --git a/requirements.txt b/requirements.txt index 5709be44..b94cadbf 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,4 +5,5 @@ packaging==23.2 pluggy==1.3.0 pytest==7.4.3 pytest-cov==4.1.0 +randovania-lupa==2.0.0 zstd==1.5.5.1 diff --git a/tests/formats/test_lua.py b/tests/formats/test_lua.py index 7b9c68e9..23a8632d 100644 --- a/tests/formats/test_lua.py +++ b/tests/formats/test_lua.py @@ -3,34 +3,56 @@ from mercury_engine_data_structures.formats.lua import Lua from mercury_engine_data_structures.game_check import Game -_COMPILED_LUA = (b'\x1bLuaQ\x00\x01\x04\x04\x04\x04\x00\x00\x00\x00\x00\x00\x00\x00' - b'\x00\x00\x00\x00\x00\x00\x00\x02\x03\x11\x00\x00\x00\x05\x00\x00' - b'\x00\x06@@\x00A\x80\x00\x00\x82\x00\x00\x00\x1c@\x80\x01\x05\xc0' - b'\x00\x00\x1a@\x00\x00\x16\x00\x00\x80\n\x00\x00\x00\x07\xc0\x00' - b'\x00\x05\xc0\x00\x00d\x00\x00\x00\t@\x00\x82\x05\xc0\x00\x00d@' - b'\x00\x00\t@\x80\x82\x1e\x00\x80\x00\x06\x00\x00\x00\x04\x05\x00' - b'\x00\x00Game\x00\x04\x0e\x00\x00\x00ImportLibrary\x00\x04<\x00\x00' - b'\x00actors/items/randomizerpowerup/scripts/randomizerpowerup.lc\x00' - b'\x04\x18\x00\x00\x00RandomizerBabyHatchling\x00\x04\x05\x00\x00' - b'\x00main\x00\x04\x0b\x00\x00\x00OnPickedUp\x00\x02\x00\x00\x00' - b'\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x02' - b'\x01\x00\x00\x00\x1e\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00' - b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06' - b'\x00\x00\x00\n\x00\x00\x00\x00\x01\x00\x04\x16\x00\x00\x00E\x00\x00' - b'\x00F@\xc0\x00\x80\x00\x00\x00\\@\x00\x01E\x80\x00\x00F\xc0\xc0\x00' - b'\x81\x00\x01\x00\\\x80\x00\x01F@\xc1\x00K\x80\xc1\x00\\@\x00\x01E\x80' - b'\x00\x00F\xc0\xc1\x00\x81\x00\x02\x00\\\x80\x00\x01\x85\x80\x00\x00\x86' - b'\xc0@\x01\xc1\x00\x01\x00\x9c\x80\x00\x01\x86@B\x01I\x80\x80\x84\x1e\x00' - b'\x80\x00\n\x00\x00\x00\x04\x12\x00\x00\x00RandomizerPowerup\x00\x04\x0b' - b'\x00\x00\x00OnPickedUp\x00\x04\x05\x00\x00\x00Game\x00\x04\x11\x00\x00' - b'\x00GetDefaultPlayer\x00\x04\x06\x00\x00\x00Samus\x00\x04\x16\x00\x00' - b'\x00BABYHATCHLINGCREATION\x00\x04\n\x00\x00\x00SpawnBaby\x00\x04\n\x00\x00' - b'\x00GetEntity\x00\x04\x0f\x00\x00\x00Baby Hatchling\x00\x04\x05\x00\x00\x00vPos' - b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - b'\x00\x00\x00\x00\x00\x00\x00\x00\x00' - ) - -lua_str ="""Game.ImportLibrary("actors/items/randomizerpowerup/scripts/randomizerpowerup.lc", false) +_SR_COMPILED_LUA = ( + b'\x1bLuaQ\x00\x01\x04\x04\x04\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x03\x11\x00\x00\x00' + b'\x05\x00\x00\x00\x06@@\x00A\x80\x00\x00\x82\x00\x00\x00\x1c@\x80\x01\x05\xc0\x00\x00\x1a@\x00\x00\x16\x00\x00\x80' + b'\n\x00\x00\x00\x07\xc0\x00\x00\x05\xc0\x00\x00d\x00\x00\x00\t@\x00\x82\x05\xc0\x00\x00d@\x00\x00\t@\x80\x82' + b'\x1e\x00\x80\x00\x06\x00\x00\x00\x04\x05\x00\x00\x00Game\x00\x04\x0e\x00\x00\x00ImportLib' + b'rary\x00\x04<\x00\x00\x00actors/items/randomize' + b'rpowerup/scripts/randomizerpower' + b'up.lc\x00\x04\x18\x00\x00\x00RandomizerBabyHatchli' + b'ng\x00\x04\x05\x00\x00\x00main\x00\x04\x0b\x00\x00\x00OnPickedUp\x00\x02\x00\x00' + b'\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x02\x01\x00\x00\x00\x1e\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\n\x00\x00\x00\x00\x01\x00\x04\x16\x00\x00' + b'\x00E\x00\x00\x00F@\xc0\x00\x80\x00\x00\x00\\@\x00\x01E\x80\x00\x00F\xc0\xc0\x00\x81\x00\x01\x00\\\x80\x00' + b'\x01F@\xc1\x00K\x80\xc1\x00\\@\x00\x01E\x80\x00\x00F\xc0\xc1\x00\x81\x00\x02\x00\\\x80\x00\x01\x85\x80\x00' + b'\x00\x86\xc0@\x01\xc1\x00\x01\x00\x9c\x80\x00\x01\x86@B\x01I\x80\x80\x84\x1e\x00\x80\x00\n\x00\x00\x00\x04\x12\x00' + b'\x00\x00RandomizerPowerup\x00\x04\x0b\x00\x00\x00OnPicke' + b'dUp\x00\x04\x05\x00\x00\x00Game\x00\x04\x11\x00\x00\x00GetDefaultPla' + b'yer\x00\x04\x06\x00\x00\x00Samus\x00\x04\x16\x00\x00\x00BABYHATCHLIN' + b'GCREATION\x00\x04\n\x00\x00\x00SpawnBaby\x00\x04\n\x00\x00\x00Ge' + b'tEntity\x00\x04\x0f\x00\x00\x00Baby Hatchling\x00\x04\x05\x00\x00' + b'\x00vPos\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00' +) + +_DREAD_COMPILED_LUA = ( + b'\x1bLuaQ\x00\x01\x04\x08\x04\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x03' + b'\x11\x00\x00\x00\x05\x00\x00\x00\x06@@\x00A\x80\x00\x00\x82\x00\x00\x00\x1c@\x80\x01\x05\xc0\x00\x00\x1a@\x00\x00' + b'\x16\x00\x00\x80\n\x00\x00\x00\x07\xc0\x00\x00\x05\xc0\x00\x00d\x00\x00\x00\t@\x00\x82\x05\xc0\x00\x00d@\x00\x00' + b'\t@\x80\x82\x1e\x00\x80\x00\x06\x00\x00\x00\x04\x05\x00\x00\x00\x00\x00\x00\x00Game\x00\x04\x0e\x00\x00\x00\x00' + b'\x00\x00\x00ImportLibrary\x00\x04<\x00\x00\x00\x00\x00\x00\x00actors' + b'/items/randomizerpowerup/scripts' + b'/randomizerpowerup.lc\x00\x04\x18\x00\x00\x00\x00\x00\x00\x00R' + b'andomizerBabyHatchling\x00\x04\x05\x00\x00\x00\x00\x00\x00\x00' + b'main\x00\x04\x0b\x00\x00\x00\x00\x00\x00\x00OnPickedUp\x00\x02\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x02\x01\x00\x00\x00\x1e\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\n\x00\x00\x00\x00\x01\x00' + b'\x04\x16\x00\x00\x00E\x00\x00\x00F@\xc0\x00\x80\x00\x00\x00\\@\x00\x01E\x80\x00\x00F\xc0\xc0\x00\x81\x00\x01' + b'\x00\\\x80\x00\x01F@\xc1\x00K\x80\xc1\x00\\@\x00\x01E\x80\x00\x00F\xc0\xc1\x00\x81\x00\x02\x00\\\x80\x00' + b'\x01\x85\x80\x00\x00\x86\xc0@\x01\xc1\x00\x01\x00\x9c\x80\x00\x01\x86@B\x01I\x80\x80\x84\x1e\x00\x80\x00\n\x00\x00' + b'\x00\x04\x12\x00\x00\x00\x00\x00\x00\x00RandomizerPowerup\x00\x04\x0b\x00\x00' + b'\x00\x00\x00\x00\x00OnPickedUp\x00\x04\x05\x00\x00\x00\x00\x00\x00\x00Game\x00\x04\x11' + b'\x00\x00\x00\x00\x00\x00\x00GetDefaultPlayer\x00\x04\x06\x00\x00\x00\x00\x00\x00' + b'\x00Samus\x00\x04\x16\x00\x00\x00\x00\x00\x00\x00BABYHATCHLINGCRE' + b'ATION\x00\x04\n\x00\x00\x00\x00\x00\x00\x00SpawnBaby\x00\x04\n\x00\x00\x00\x00\x00' + b'\x00\x00GetEntity\x00\x04\x0f\x00\x00\x00\x00\x00\x00\x00Baby Hatchl' + b'ing\x00\x04\x05\x00\x00\x00\x00\x00\x00\x00vPos\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +) + + +lua_str = """Game.ImportLibrary("actors/items/randomizerpowerup/scripts/randomizerpowerup.lc", false) RandomizerBabyHatchling = RandomizerBabyHatchling or {} function RandomizerBabyHatchling.main() end @@ -41,8 +63,11 @@ Game.GetEntity("Baby Hatchling").vPos = Game.GetDefaultPlayer("Samus").vPos end """ -def test_build_lua(): - lua = Lua(Container(lua_text=lua_str), Game.SAMUS_RETURNS) - assert lua.build() == _COMPILED_LUA +def test_build_lua(): + lua_sr = Lua(Container(lua_text=lua_str), Game.SAMUS_RETURNS) + assert lua_sr.build() == _SR_COMPILED_LUA + + lua_dread = Lua(Container(lua_text=lua_str), Game.DREAD) + assert lua_dread.build() == _DREAD_COMPILED_LUA