def setUp(self): self.xdasrv = TestXDAServer(http_log_fn='http.log') root = resource.Resource() root.putChild('', self.xdasrv) site = server.Site(root) self.port = self._listen(site) reactor.iterate() reactor.iterate() self.portno = self.port.getHost().port self.URL = "http://127.0.0.1:%d/" % self.portno self.xda = TWXDAClient(OPCServerAddress=self.URL)
class BasicOperations(unittest.TestCase, TestXDAServer): def _listen(self, site): return reactor.listenTCP(8000, site, interface="127.0.0.1") def setUp(self): self.xdasrv = TestXDAServer(http_log_fn='http.log') root = resource.Resource() root.putChild('', self.xdasrv) site = server.Site(root) self.port = self._listen(site) reactor.iterate() reactor.iterate() self.portno = self.port.getHost().port self.URL = "http://127.0.0.1:%d/" % self.portno self.xda = TWXDAClient(OPCServerAddress=self.URL) def tearDown(self): self.port.stopListening() reactor.iterate() reactor.iterate() del self.port ############################################################### def testGetStatus(self): ''' Test Get Status and Reply Base ''' d = self.xda.twGetStatus(LocaleID='NotAvailable', ClientRequestHandle='ui293') d.addCallback(self._cbGetStatus) return d def _cbGetStatus(self, (ilist, Options)): self.assertEqual(Options.get('ServerState', None), 'running') self.assertEqual(Options.get('ClientRequestHandle', None), 'ui293') self.assertEqual(Options.get('RevisedLocaleID', None), 'en-us') # There has to be a RcvTime and ReplyTime self.failUnless(Options.get('RcvTime', None)) self.failUnless(Options.get('ReplyTime', None)) self.assertEqual(Options.get('StatusInfo', None), self.StatusInfo) self.assertEqual(ilist, [])
class BasicOperations(unittest.TestCase, TestXDAServer): def _listen(self, site): return reactor.listenTCP(8000, site, interface="127.0.0.1") def setUp(self): self.xdasrv = TestXDAServer(http_log_fn='http.log') root = resource.Resource() root.putChild('', self.xdasrv) site = server.Site(root) self.port = self._listen(site) reactor.iterate() reactor.iterate() self.portno = self.port.getHost().port self.URL = "http://127.0.0.1:%d/" % self.portno self.xda = TWXDAClient(OPCServerAddress=self.URL) def tearDown(self): self.port.stopListening() reactor.iterate() reactor.iterate() del self.port ############################################################### def testDeadband(self): ''' Test Deadband function ''' oldItem = ItemContainer() newItem = ItemContainer() # These should be equal self.failIf(self.HasChanged(oldItem, newItem)) # Now change one attribute newItem.QualityField = 'bad' self.failUnless(self.HasChanged(oldItem, newItem)) # Test Integer value change oldItem.Value = 100 # Reset newItem = copy.copy(oldItem) # These should be equal self.failIf(self.HasChanged(oldItem, newItem)) # Now set Deadband = 0 newItem.Deadband = 0 self.failIf(self.HasChanged(oldItem, newItem)) # Now change one attribute newItem.Value = 105 self.failUnless(self.HasChanged(oldItem, newItem)) # DEADBAND TESTS oldItem.Value = None # Do all tests with deadband=10.1 oldItem.Deadband = 10.1 newItem = copy.copy(oldItem) # Integer oldItem.Value = 100 newItem.Value = 110 self.failIf(self.HasChanged(oldItem, newItem)) newItem.Value = 111 self.failUnless(self.HasChanged(oldItem, newItem)) # Float oldItem.Value = 100.0 newItem.Value = 110.0 self.failIf(self.HasChanged(oldItem, newItem)) newItem.Value = 111.0 self.failUnless(self.HasChanged(oldItem, newItem)) ############################################################### def testFault1(self): ''' Test if Server Faults are handled correctly ''' d = self.xda.twGetStatus(ClientRequestHandle='ReturnFault1') d.addCallback(self._cbFault1) d.addErrback(self._ebFault1) return d def _cbFault1(self, (ilist, Options)): self.fail("Callback should never be called")
def print_options((ilist,options)): print ilist; print options; print global OPERATIONS OPERATIONS -= 1 if OPERATIONS == 0: reactor.stop() def handleError(failure): print "An Error occured" print failure.getTraceback() reactor.stop() address='http://violin.qwer.tk:8000/' xda = TWXDAClient(OPCServerAddress=address, ReturnErrorText=True) d = xda.twGetStatus() d.addCallback(print_options) d.addErrback(handleError) d = xda.twBrowse() d.addCallback(print_options) d.addErrback(handleError) d = xda.twRead([ItemContainer(ItemName='simple_item', MaxAge=500)], LocaleID='en-us') d.addCallback(print_options) d.addErrback(handleError) reactor.run()
reactor.listenTCP(8000, site) def PrintArgs(result, cmd, stop=False): print cmd, ':', result if stop: reactor.callLater(2, reactor.stop) def PrintErr(failure, cmd, stop=False): print cmd, ':', failure.value if stop: reactor.callLater(2, reactor.stop) from PyOPC.TWXDAClient import TWXDAClient from PyOPC.OPCContainers import * URL = "http://127.0.0.1:8000/" xda = TWXDAClient(OPCServerAddress=URL) #xda.twBrowse().addCallback(PrintArgs,'Browse').addErrback(PrintErr,'Browse') #xda.twBrowse(ItemName='/LON').addCallback(PrintArgs,'Browse').addErrback(PrintErr,'Browse') #xda.twBrowse(ItemName='/LON/GATE1').addCallback(PrintArgs,'Browse').addErrback(PrintErr,'Browse') #xda.twBrowse(ItemName='/LON/GATE1/01:02:03:04:05:06').addCallback(PrintArgs,'Browse',True).addErrback(PrintErr,'Browse',True) #xda.twBrowse(ItemName='/LON/GATE1/01:02:03:04:05:06/11').addCallback(PrintArgs,'Browse',True).addErrback(PrintErr,'Browse',True) #xda.twBrowse(ItemName='/LON/GATE1/01:02:03:04:05:06/11/asdf').addCallback(PrintArgs,'Browse',True).addErrback(PrintErr,'Browse',True) #xda.twGetProperties((ItemContainer(ItemName = '/LON/GATE1/01:02:03:04:05:06/11'), # ItemContainer(ItemName = '/LON/GATE1/01:02:03:04:05:06/12')), # ReturnErrorText=True).addCallback(\ # PrintArgs,'GetProperties',True).addErrback(\ # PrintErr,'GetProperties',True) #xda.twRead((ItemContainer(ItemName = '/LON/GATE1/01:02:03:04:05:06/11/BINHEX'), # ItemContainer(ItemName = '/LON/GATE1/01:02:03:04:05:06/12/STRING')), # ReturnErrorText=True).addCallback(\