diff --git a/tests/units/sc2/actions/test_sc2_action.py b/tests/units/sc2/actions/test_sc2_action.py new file mode 100644 index 0000000..cd4a8e0 --- /dev/null +++ b/tests/units/sc2/actions/test_sc2_action.py @@ -0,0 +1,21 @@ +import unittest + +from pysc2.lib import actions + +from urnai.actions.sc2_action import SC2Action + +_BUILD_REFINERY = actions.RAW_FUNCTIONS.Build_Refinery_pt +_NO_OP = actions.FUNCTIONS.no_op + +class TestSC2Action(unittest.TestCase): + + def test_run(self): + + run_no_op = SC2Action.run(_NO_OP) + run_build_refinery = SC2Action.run(_BUILD_REFINERY, 'now', 0) + + self.assertEqual(run_no_op.function, _NO_OP.id) + self.assertEqual(run_no_op.arguments, []) + + self.assertEqual(run_build_refinery.function, _BUILD_REFINERY.id) + self.assertEqual(run_build_refinery.arguments, [[actions.Queued['now']], [0]]) diff --git a/urnai/sc2/actions/sc2_action.py b/urnai/sc2/actions/sc2_action.py new file mode 100644 index 0000000..d2d1047 --- /dev/null +++ b/urnai/sc2/actions/sc2_action.py @@ -0,0 +1,9 @@ +from pysc2.lib.actions import FunctionCall + + +class SC2Action: + + """This class encapsulates the usage of actions from pysc2""" + + def run(action_function, *args) -> FunctionCall: + return action_function(*args)