Archipelago/worlds/lufia2ac/test/TestCustomItemPool.py

58 lines
1.8 KiB
Python

from argparse import Namespace
from BaseClasses import PlandoOptions
from Generate import handle_option
from . import L2ACTestBase
from ..Options import CustomItemPool
class TestEmpty(L2ACTestBase):
options = {
"custom_item_pool": {},
}
def test_empty(self) -> None:
self.assertEqual(0, len(self.get_items_by_name("Dekar blade")))
class TestINeedDekarBlade(L2ACTestBase):
options = {
"custom_item_pool": {
"Dekar blade": 2,
},
}
def test_i_need_dekar_blade(self) -> None:
self.assertEqual(2, len(self.get_items_by_name("Dekar blade")))
class TestVerifyCount(L2ACTestBase):
auto_construct = False
options = {
"custom_item_pool": {
"Dekar blade": 26,
},
}
def test_verify_count(self) -> None:
self.assertRaisesRegex(ValueError,
"Number of items in custom_item_pool \\(26\\) is greater than blue_chest_count \\(25\\)",
lambda: self.world_setup())
class TestVerifyItemName(L2ACTestBase):
auto_construct = False
options = {
"custom_item_pool": {
"The car blade": 2,
},
}
def test_verify_item_name(self) -> None:
self.assertRaisesRegex(Exception,
"Item The car blade from option CustomItemPool\\(The car blade: 2\\) is not a "
"valid item name from Lufia II Ancient Cave\\. Did you mean 'Dekar blade'",
lambda: handle_option(Namespace(game="Lufia II Ancient Cave", name="Player"),
self.options, "custom_item_pool", CustomItemPool,
PlandoOptions(0)))