P23-03: 生活の観察
This commit is contained in:
@@ -18,6 +18,30 @@ sys.dont_write_bytecode = True
|
||||
import check_p23_life_observation_evidence as check
|
||||
|
||||
|
||||
class SetupBudgetTests(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.source = (check.ROOT / 'tests/fixtures/p23-03/observation.gd').read_text()
|
||||
|
||||
def test_all_planned_spends_enter_common_needed_and_deltas(self):
|
||||
self.assertEqual(check.check_setup_budget_source(self.source),
|
||||
{'construction', 'signing', 'purchase'})
|
||||
|
||||
def test_missing_spend_category_fails_before_os_replay(self):
|
||||
expressions = {
|
||||
'construction': 'needed[key] += int(definition.construction_cost.get(key, 0))',
|
||||
'signing': 'needed[&"gold"] += signing_total',
|
||||
'purchase': 'needed[&"gold"] += purchase_total',
|
||||
}
|
||||
for category, expression in expressions.items():
|
||||
with self.subTest(category=category), self.assertRaisesRegex(ValueError, category):
|
||||
check.check_setup_budget_source(self.source.replace(expression, 'pass'))
|
||||
|
||||
def test_missing_delta_coverage_fails(self):
|
||||
with self.assertRaisesRegex(ValueError, 'deltas'):
|
||||
check.check_setup_budget_source(self.source.replace(
|
||||
'deltas[key] = needed[key] - state.get_resource(key)', 'pass'))
|
||||
|
||||
|
||||
class QueuedElevatorTests(unittest.TestCase):
|
||||
def setUp(self):
|
||||
fixture = json.loads((check.ROOT / 'tests/fixtures/p23-03/queued_elevator.json').read_text())
|
||||
|
||||
Reference in New Issue
Block a user