import copy import unittest from tools.replay_inner_wall_stations import validate_candidate class InnerWallPublication(unittest.TestCase): def candidate(self): return dict(count=2, schedule_count=1, instance_paths_m=[[[0, 0, 0], [0, 0, 1]], [[1, 0, 0], [1, 0, 1]]], fabrication_measurement=dict(fixed_length_pass=True, count_pass=False), quantity_comparison=dict(applied_authority='placement_drawing', status='schedule_review_required', drawing_count=2, schedule_count=1), cad_cycle_assembly=dict(wall_station_sources=[dict(selected_stations_mm=[0, 1000])])) def test_review_requires_explicit_policy(self): with self.assertRaises(ValueError): validate_candidate(self.candidate(), 0) def test_review_does_not_alter_or_approve_quantity(self): group = self.candidate(); before = copy.deepcopy(group) validate_candidate(group, 0, allow_drawing_quantity_review=True) self.assertEqual(group, before) self.assertFalse(group['fabrication_measurement']['count_pass']) def test_review_never_bypasses_geometry_or_missing_evidence(self): for failure in ('outside', 'length', 'duplicate', 'source', 'false_approval'): group = self.candidate(); outside = int(failure == 'outside') if failure == 'length': group['fabrication_measurement']['fixed_length_pass'] = False if failure == 'duplicate': group['instance_paths_m'][1] = group['instance_paths_m'][0] if failure == 'source': group['cad_cycle_assembly']['wall_station_sources'] = [] if failure == 'false_approval': group['fabrication_measurement']['count_pass'] = True with self.subTest(failure=failure), self.assertRaises(ValueError): validate_candidate(group, outside, allow_drawing_quantity_review=True) if __name__ == '__main__': unittest.main()