58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			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))) |