def test_pass_original_attribs(self): # Make sure original item attributes are used charge_item = self.ch.type_(type_id=1, attributes={Attribute.charge_size: 2}) charge_holder = Mock(state=State.offline, item=charge_item, _domain=None, spec_set=Charge(1)) charge_holder.attributes = {Attribute.charge_size: 1} container_item = self.ch.type_(type_id=2, attributes={Attribute.charge_size: 2}) container_holder = Mock(state=State.offline, item=container_item, _domain=Domain.ship, spec_set=ModuleHigh(1)) container_holder.attributes = {Attribute.charge_size: 3} container_holder.charge = charge_holder charge_holder.container = container_holder self.track_holder(container_holder) self.track_holder(charge_holder) restriction_error1 = self.get_restriction_error( container_holder, Restriction.charge_size) self.assertIsNone(restriction_error1) restriction_error2 = self.get_restriction_error( charge_holder, Restriction.charge_size) self.assertIsNone(restriction_error2) self.untrack_holder(container_holder) self.untrack_holder(charge_holder) self.assertEqual(len(self.log), 0) self.assert_restriction_buffers_empty()
def test_fail_charge_no_attrib(self): charge_item = self.ch.type_(type_id=1, attributes={}) charge_holder = Mock(state=State.offline, item=charge_item, _domain=None, spec_set=Charge(1)) container_item = self.ch.type_(type_id=2, attributes={Attribute.charge_size: 3}) container_holder = Mock(state=State.offline, item=container_item, _domain=Domain.ship, spec_set=ModuleHigh(1)) container_holder.charge = charge_holder charge_holder.container = container_holder self.track_holder(container_holder) self.track_holder(charge_holder) restriction_error1 = self.get_restriction_error( container_holder, Restriction.charge_size) self.assertIsNone(restriction_error1) restriction_error2 = self.get_restriction_error( charge_holder, Restriction.charge_size) self.assertIsNotNone(restriction_error2) self.assertEqual(restriction_error2.allowed_size, 3) self.assertEqual(restriction_error2.holder_size, None) self.untrack_holder(container_holder) self.untrack_holder(charge_holder) self.assertEqual(len(self.log), 0) self.assert_restriction_buffers_empty()
def test_fail_group3(self): charge_item = self.ch.type_(type_id=1, group=1008) charge_holder = Mock(state=State.offline, item=charge_item, _domain=None, spec_set=Charge(1)) container_item = self.ch.type_( type_id=2, attributes={Attribute.charge_group_3: 3}) container_holder = Mock(state=State.offline, item=container_item, _domain=Domain.ship, spec_set=ModuleHigh(1)) container_holder.charge = charge_holder charge_holder.container = container_holder self.track_holder(container_holder) self.track_holder(charge_holder) restriction_error1 = self.get_restriction_error( container_holder, Restriction.charge_group) self.assertIsNone(restriction_error1) restriction_error2 = self.get_restriction_error( charge_holder, Restriction.charge_group) self.assertIsNotNone(restriction_error2) self.assertEqual(len(restriction_error2.allowed_groups), 1) self.assertIn(3, restriction_error2.allowed_groups) self.assertEqual(restriction_error2.holder_group, 1008) self.untrack_holder(container_holder) self.untrack_holder(charge_holder) self.assertEqual(len(self.log), 0) self.assert_restriction_buffers_empty()
def test_pass_multiple(self): charge_item = self.ch.type_(type_id=1, group=1008) charge_holder = Mock(state=State.offline, item=charge_item, _domain=None, spec_set=Charge(1)) container_item = self.ch.type_(type_id=2, attributes={ Attribute.charge_group_3: 56, Attribute.charge_group_5: 1008 }) container_holder = Mock(state=State.offline, item=container_item, _domain=Domain.ship, spec_set=ModuleHigh(1)) container_holder.charge = charge_holder charge_holder.container = container_holder self.track_holder(container_holder) self.track_holder(charge_holder) restriction_error1 = self.get_restriction_error( container_holder, Restriction.charge_group) self.assertIsNone(restriction_error1) restriction_error2 = self.get_restriction_error( charge_holder, Restriction.charge_group) self.assertIsNone(restriction_error2) self.untrack_holder(container_holder) self.untrack_holder(charge_holder) self.assertEqual(len(self.log), 0) self.assert_restriction_buffers_empty()
def setUp(self): super().setUp() self.holder = Module(type_id=None) self.holder.attributes = {} self.charge = Charge(type_id=None) self.charge.attributes = {} self.holder.charge = self.charge
def test_pass_no_volume(self): charge_item = self.ch.type_(type_id=1, attributes={}) charge_holder = Mock(state=State.offline, item=charge_item, _domain=None, spec_set=Charge(1)) container_item = self.ch.type_(type_id=2, attributes={Attribute.volume: 3}) container_holder = Mock(state=State.offline, item=container_item, _domain=Domain.ship, spec_set=Module(1)) container_holder.charge = charge_holder charge_holder.container = container_holder self.track_holder(container_holder) self.track_holder(charge_holder) restriction_error1 = self.get_restriction_error( container_holder, Restriction.charge_volume) self.assertIsNone(restriction_error1) restriction_error2 = self.get_restriction_error( charge_holder, Restriction.charge_volume) self.assertIsNone(restriction_error2) self.untrack_holder(container_holder) self.untrack_holder(charge_holder) self.assertEqual(len(self.log), 0) self.assert_restriction_buffers_empty()
def test_fail_greater(self): charge_item = self.ch.type_(type_id=1, attributes={Attribute.volume: 2}) charge_holder = Mock(state=State.offline, item=charge_item, _domain=None, spec_set=Charge(1)) container_item = self.ch.type_(type_id=2, attributes={Attribute.capacity: 1}) container_holder = Mock(state=State.offline, item=container_item, _domain=Domain.ship, spec_set=Module(1)) container_holder.charge = charge_holder charge_holder.container = container_holder self.track_holder(container_holder) self.track_holder(charge_holder) restriction_error1 = self.get_restriction_error( container_holder, Restriction.charge_volume) self.assertIsNone(restriction_error1) restriction_error2 = self.get_restriction_error( charge_holder, Restriction.charge_volume) self.assertIsNotNone(restriction_error2) self.assertEqual(restriction_error2.max_allowed_volume, 1) self.assertEqual(restriction_error2.holder_volume, 2) self.untrack_holder(container_holder) self.untrack_holder(charge_holder) self.assertEqual(len(self.log), 0) self.assert_restriction_buffers_empty()