def testEnterSafeMode(self): """Tests the :meth:`enterSafeMode` method.""" safeCurrent = self.system.heatingCurrentInSafeMode * 2 self.system.heatingCurrentInSafeMode = safeCurrent self.system.startHeatingWithCurrent(safeCurrent * 2) logger = test.wrapLogger(self.system.startHeatingWithCurrent) self.system.lock(42) self.system.enterSafeMode() self.assertTrue(self.system.isInSafeMode) self.assertEqual(logger.log, [(safeCurrent, 42)]) # Do not pointlessly call startHeatingWithCurrent. self.system.enterSafeMode() self.assertTrue(self.system.isInSafeMode) self.assertEqual(logger.log, [(safeCurrent, 42)]) self.system.unlock(42) self.system.startHeatingWithCurrent(safeCurrent / 2) self.assertFalse(self.system.isInSafeMode) self.assertEqual(logger.log, [(safeCurrent, 42), safeCurrent / 2]) # Do not pointlessly call startHeatingWithCurrent here either. self.system.enterSafeMode() self.assertTrue(self.system.isInSafeMode) self.assertEqual(logger.log, [(safeCurrent, 42), safeCurrent / 2])
def testMeasurementChanged(self): """Tests the :meth:`_measurementChanged` method.""" eventCount = len(self.mediator.eventsNoted) rpLogger = test.wrapLogger(self.cd._recalculatePolynomials) self.cd._measurementChanged() self.assertEqual(len(rpLogger.log), 1) self.assertEqual(len(self.mediator.eventsNoted), eventCount + 1) self.assertEqual(self.mediator.eventsNoted[-1], CalibrationDataChanged(self.system, self.cd)) self.system.calibrationData = CalibrationData() self.assertEqual(len(self.mediator.eventsNoted), eventCount + 2) # cd is now free; recalculate poynomials, but send no events. self.cd._measurementChanged() self.assertEqual(len(rpLogger.log), 2) self.assertEqual(len(self.mediator.eventsNoted), eventCount + 2)
def setUp(self): self.mediator = gui.mediator.Mediator(logging=True) self.system = ops.system.ProductionSystem(self.mediator) self.cd = self.system.calibrationData self.mcLogger = test.wrapLogger(self.cd._measurementChanged)