def side_effect(post, typ, kwargs): if kwargs["endpoint"] == "D": self.post = post bit = dict(type=VInt, descriptor="Desc", value=3, alarm=Alarm.ok().to_dict(), timeStamp=43.2) post(SType.Return, value=dict(attributes=dict(bit=bit))) elif kwargs["endpoint"] == "D.attributes.bit": self.spost = post
def test_to_dict(self): d = self.s.to_dict() self.assertEqual(d.keys(), ['type', 'descriptor']) self.assertEqual(d.values(), ['str', 'The String']) self.s.update("wow", timeStamp=3.2) d = self.s.to_dict() self.assertEqual(d.keys(), ['value', 'type', 'descriptor', 'alarm', 'timeStamp']) self.assertEqual(d.values(), ['wow', 'str', 'The String', Alarm.ok(), 3.2])
def side_effect(post, typ, kwargs): if kwargs["endpoint"] == "D": sm = dict( state=DState.Running.to_dict(), message="foo", timeStamp=43.2) run = dict(descriptor="Run") bit = dict(type="int", descriptor="Desc", value=3, alarm=Alarm.ok().to_dict(), timeStamp=43.2) post(SType.Return, value=dict( attributes=dict(bit=bit), stateMachine=sm, methods=dict(run=run)))
def test_compare_vtables(self): a = Attribute(VTable, "Positions") a.notify_listeners = MagicMock() t1 = [("x", VLong, numpy.arange(5, dtype=numpy.int64), ''), ("y", VLong, numpy.arange(5, dtype=numpy.int64) + 2, 'mm')] a.update(t1, None, 1.0) a.notify_listeners.assert_called_with( dict(value=t1, alarm=Alarm.ok(), timeStamp=1.0)) a.update(t1, None, 1.0) a.notify_listeners.assert_called_with(dict()) t2 = [("x", VLong, numpy.arange(5, dtype=numpy.int64) + 3, ''), ("y", VLong, numpy.arange(5, dtype=numpy.int64) + 2, '')] a.update(t2, None, 1.0) a.notify_listeners.assert_called_with(dict(value=t2))
def test_attribute_monitors(self): def side_effect(post, typ, kwargs): if kwargs["endpoint"] == "D": self.post = post bit = dict(type=VInt, descriptor="Desc", value=3, alarm=Alarm.ok().to_dict(), timeStamp=43.2) post(SType.Return, value=dict(attributes=dict(bit=bit))) elif kwargs["endpoint"] == "D.attributes.bit": self.spost = post self.sock.request.side_effect = side_effect self.d.loop_run() self.assertEqual(len(self.sock.mock_calls), 2) self.assertEqual(self.sock.request.call_args_list[0], call( self.post, SType.Get, dict(endpoint="D"))) self.assertEqual(self.sock.request.call_args_list[1], call( self.spost, SType.Subscribe, dict(endpoint="D.attributes.bit"))) self.assertEqual(self.d.bit, 3) self.assertEqual(type(self.d.attributes["bit"].typ), VInt) self.assertEqual(self.d.attributes["bit"].descriptor, "Desc") self.assertEqual(self.d.attributes["bit"].value, 3) self.assertEqual(self.d.attributes["bit"].alarm, Alarm.ok()) self.assertEqual(self.d.attributes["bit"].timeStamp, 43.2)
def test_eq(self): ok = Alarm.ok() also_ok = Alarm(AlarmSeverity.noAlarm, AlarmStatus.noStatus, "No alarm") self.assertEqual(ok, also_ok)
def test_ok(self): ok = Alarm.ok() self.assertEqual(ok.status, AlarmStatus.noStatus) self.assertEqual(ok.severity, AlarmSeverity.noAlarm) self.assertEqual(ok.message, "No alarm")