def test_noop(self): """Setup and tear down without running reactor. """ self.get = CAGet(self.chan) self.check = ref(self.get) # circuit not connected self.assertEqual(len(self.chan._circ.pendingActions), 0) self.get.close() self.assertEqual(len(self.chan._circ.pendingActions), 0) del self.get
def test_canceldead(self): """Connect, lose connection, cancel """ g = self.get = CAGet(self.chan) self.check = ref(self.get) self.chan.doCon() pkt, _ = self.chan._circ._sent.pop(0) self.assertEqual(len(pkt), 16) pkt, extra = CAmessage.unpack(pkt) self.assertEqual(len(extra), 0) self.assertEqual(pkt.cmd, 15) self.chan.doLost() self.get.close() del self.get
def test_cancellive(self): """Connect but cancel after data request sent """ g = self.get = CAGet(self.chan) self.check = ref(self.get) self.chan.doCon() self.assertEqual(len(self.chan._circ._sent), 1) self.assertEqual(len(self.chan._circ.pendingActions), 1) pkt, _ = self.chan._circ._sent[0] self.assertEqual(len(pkt), 16) pkt, extra = CAmessage.unpack(pkt) self.assertEqual(len(extra), 0) self.assertEqual(pkt.cmd, 15) self.assertEqual(pkt.p1, self.chan.sid) self.assertIn(pkt.p2, self.chan._circ.pendingActions) self.get.close() del self.get
def getUpdated(sts): if sts!=ECA_NORMAL: print 'Error:', sts d2=CAGet(chan, dbf_conv=DBF.STRING) return d2.data
try: reactor.stop() except ReactorNotRunning: pass if opt.tmo >=0.00001: reactor.callLater(opt.tmo, timeout) client=CAClient() chan=CAClientChannel(pv, client) # request native type and convert to string locally g=CAGet(chan, dbf_conv=DBF.STRING) d=g.data @d.addCallback def startSet((data,_)): print 'Before:', for d in data: print d, print s=CASet(chan, args, dbf=dbr, wait=not opt.nowait) return s.complete @d.addCallback def getUpdated(sts):
return x def timeout(): log.fatal('Timeout!') try: reactor.stop() except ReactorNotRunning: pass if opt.tmo >= 0.00001: reactor.callLater(opt.tmo, timeout) gets = [] client = CAClient() for pv in pvs: chan = CAClientChannel(pv, client) g = CAGet(chan, dbf_req, count, meta=meta_req, dbf_conv=dbf_dis) g.data.addCallback(data, pv, meta_req) g.data.addErrback(nodata, pv) gets.append(g.data) done = DeferredList(gets) done.addBoth(stop) reactor.run()
class TestGet(unittest.TestCase): timeout = 2 def setUp(self): self.chan = MockChannel() self.chan._circ = MockCircuit() self.chan.dbr = DBR.STRING self.chan.maxcount = 1 def tearDown(self): if hasattr(self, 'get'): self.get.close() del self.get import gc gc.collect() if hasattr(self, 'check'): # Ensure no remaining references self.assertTrue(self.check() is None) def test_noop(self): """Setup and tear down without running reactor. """ self.get = CAGet(self.chan) self.check = ref(self.get) # circuit not connected self.assertEqual(len(self.chan._circ.pendingActions), 0) self.get.close() self.assertEqual(len(self.chan._circ.pendingActions), 0) del self.get def test_cancellive(self): """Connect but cancel after data request sent """ g = self.get = CAGet(self.chan) self.check = ref(self.get) self.chan.doCon() self.assertEqual(len(self.chan._circ._sent), 1) self.assertEqual(len(self.chan._circ.pendingActions), 1) pkt, _ = self.chan._circ._sent[0] self.assertEqual(len(pkt), 16) pkt, extra = CAmessage.unpack(pkt) self.assertEqual(len(extra), 0) self.assertEqual(pkt.cmd, 15) self.assertEqual(pkt.p1, self.chan.sid) self.assertIn(pkt.p2, self.chan._circ.pendingActions) self.get.close() del self.get def test_canceldead(self): """Connect, lose connection, cancel """ g = self.get = CAGet(self.chan) self.check = ref(self.get) self.chan.doCon() pkt, _ = self.chan._circ._sent.pop(0) self.assertEqual(len(pkt), 16) pkt, extra = CAmessage.unpack(pkt) self.assertEqual(len(extra), 0) self.assertEqual(pkt.cmd, 15) self.chan.doLost() self.get.close() del self.get