def test_targeted_event_handling(self): event_maker = EventProducerTestClass() event_maker.configure({'name': 'EventProducerTester', 'parent': '/'}) event_maker.start() nr = {1: event_maker} sid = SUBSCRIPTION_MANAGER.create_delivered(self, nr) # Wait for polling to start and verify value made it without any events t1 = time.time() while (time.time() - t1) < 1.0: all_values = SUBSCRIPTION_MANAGER.poll_all(sid) time.sleep(0.1) # Check that subscription value is the initial value of 100 if all_values[1]['value'] != 100: raise ("polled_event_handling did not return inital value: " + str(all_values[1]['value'])) # make a rapid series of changes to the node value for i in range(10): event_maker._cov_check(i) time.sleep(0.1) # check change count, should be approx 10 value_updates = self.__event_updated_values[1]['changes'] cov_counts = self._cov_counter if value_updates < cov_counts: raise ( "Targeted event handling event count did not match %d vs %d" % (value_updates, cov_counts))
def test_targeted_event_handling(self): event_maker = EventProducerTestClass() event_maker.configure({'name':'EventProducerTester','parent':'/'}) event_maker.start() nr = {1:event_maker} sid = SUBSCRIPTION_MANAGER.create_delivered(self, nr) # Wait for polling to start and verify value made it without any events t1 = time.time() while (time.time() - t1) < 1.0: all_values = SUBSCRIPTION_MANAGER.poll_all(sid) time.sleep(0.1) # Check that subscription value is the initial value of 100 if all_values[1]['value'] != 100: raise ("polled_event_handling did not return inital value: " + str(all_values[1]['value'])) # make a rapid series of changes to the node value for i in range(10): event_maker._cov_check(i) time.sleep(0.1) # check change count, should be approx 10 value_updates = self.__event_updated_values[1]['changes'] cov_counts = self._cov_counter if value_updates < cov_counts: raise ( "Targeted event handling event count did not match %d vs %d" % (value_updates, cov_counts) )
def get(self, skipcache=0): if self.link: if not self._smid: try: value = self.as_node(self.link).get() #get it once to force autodiscovery if hasattr(value, 'as_magnitude'): value = value.as_magnitude() self._last_value = value self._smid = SM.create_delivered(self, {1:self.link}) #ID of subscription used for all descendent mpx_get templates except: msglog.exception() return self._last_value
def get(self, skipcache=0): if self.link: if not self._smid: try: value = self.as_node( self.link).get() #get it once to force autodiscovery if hasattr(value, 'as_magnitude'): value = value.as_magnitude() self._last_value = value self._smid = SM.create_delivered( self, {1: self.link} ) #ID of subscription used for all descendent mpx_get templates except: msglog.exception() return self._last_value
def test_create_delivered(self): sid = SUBSCRIPTION_MANAGER.create_delivered(self, self.nrt1to4) nrt = SUBSCRIPTION_MANAGER.node_reference_table(sid) if nrt != self.nrt1to4: raise "Initial node reference table mismatch." time.sleep(0.1) t1 = time.time() while (time.time() - t1) < 1.0: self.__event_lock.acquire() try: if len(self.__event_updated_values) == 4: # We got all 4 values! return finally: self.__event_lock.release() time.sleep(0.1) if len(self.__event_updated_values) != 4: raise (("Never got changes for all four values, only %d.\n" "Values: %r") % (len(self.__event_updated_values), self.__event_updated_values))