Example #1
0
 def test_adjusted_minimum_poll_interval(self):
     SUBSCRIPTION_MANAGER._set_tunable_parameters({"minimum_poll_interval": 0.2})
     sid = SUBSCRIPTION_MANAGER.create_polled(self.nrt1to4)
     nrt = SUBSCRIPTION_MANAGER.node_reference_table(sid)
     if nrt != self.nrt1to4:
         raise "Initial node reference table mismatch."
     # Check that each invokation gets all values.
     for i in range(0, 10):
         all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
         if len(all_values) != len(self.nrt1to4):
             # We did not get all 4 values!
             raise (
                 "poll_all(self.nrt1to4) did not return all values."
                 " (%d out of %d)" % (len(all_values), len(self.nrt1to4))
             )
     # Check that (eventually) all the values are result dictionaries.
     t1 = time.time()
     while (time.time() - t1) < 1.0:
         all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
         if None not in all_values.values():
             # ID3 is /services/time/UTC/milliseconds which should
             # change "really fast."
             c1 = all_values[self.ID3]["changes"]
             time.sleep(1.0)
             all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
             c2 = all_values[self.ID3]["changes"]
             if (c2 - c1) > 6:  # 0.2 == Max 5/second.
                 raise ("1/5th second throttle failed," " %r changed %d times in one second.") % (
                     self.ID3,
                     (c2 - c1),
                 )
             return
         time.sleep(0.1)
     raise ("Never got changes for all four result dictionaries, %d." % len(all_values))
     return
Example #2
0
 def test_fast_minimum_poll_interval(self):
     SUBSCRIPTION_MANAGER._set_tunable_parameters({"minimum_poll_interval": 0.0})
     sid = SUBSCRIPTION_MANAGER.create_polled(self.nrt1to4)
     nrt = SUBSCRIPTION_MANAGER.node_reference_table(sid)
     if nrt != self.nrt1to4:
         raise "Initial node reference table mismatch."
     # Check that each invokation gets all values.
     for i in range(0, 10):
         all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
         if len(all_values) != len(self.nrt1to4):
             # We did not get all 4 values!
             raise (
                 "poll_all(self.nrt1to4) did not return all values."
                 " (%d out of %d)" % (len(all_values), len(self.nrt1to4))
             )
     # Check that (eventually) all the values are result dictionaries.
     all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
     t1 = time.time()
     while (time.time() - t1) < 1.0:
         time.sleep(0.1)
         all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
     if None in all_values.values():
         raise (
             ("Never got changes for all four result dictionaries, %d.\n" "Values: %r")
             % (len(all_values), all_values)
         )
     # ID3 is /services/time/UTC/milliseconds which should
     # change "really fast."
     c1 = all_values[self.ID3]["changes"]
     time.sleep(1.0)
     all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
     c2 = all_values[self.ID3]["changes"]
     if (c2 - c1) < 25:  # It's usually 500 on fearfactory...
         raise "%r only changed %d times in one second." % (self.ID3, (c2 - c1))
     return
 def test_poll_all_plus_exceptions(self):
     SUBSCRIPTION_MANAGER._set_tunable_parameters({
         'minimum_poll_interval':0.0,
         })
     nrt1to4bad5to6 = {}
     nrt1to4bad5to6.update(self.nrt1to4)
     nrt1to4bad5to6['/services/time/is/an/illusion'] = (
         '/services/time/is/an/illusion'
         )
     nrt1to4bad5to6['/services/exception'] = '/services/exception'
     sid = SUBSCRIPTION_MANAGER.create_polled(nrt1to4bad5to6)
     nrt = SUBSCRIPTION_MANAGER.node_reference_table(sid)
     if nrt != nrt1to4bad5to6:
         raise "Initial node reference table mismatch."
     # Check that each invokation gets all values.
     for i in range(0,10):
         all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
         if len(all_values) != len(nrt1to4bad5to6):
             # We did not get all 4 values!
             raise (
                 "poll_all(self.nrt1to4) did not return all values."
                 " (%d out of %d)" % (len(all_values),len(nrt1to4bad5to6))
                 )
     # Check that (eventually) all the values are result dictionaries.
     all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
     t1 = time.time()
     while (time.time() - t1) < 1.0:
         if None not in all_values.values():
             self.__all_plus_exceptions_check(all_values)
             # Finally, test that a new subscription gets the correct
             # results.
             time.sleep(0.1)
             sid = SUBSCRIPTION_MANAGER.create_polled(nrt1to4bad5to6)
             time.sleep(0.1)
             all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
             self.__all_plus_exceptions_check(all_values)                
             time.sleep(0.1)
             all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
             self.__all_plus_exceptions_check(all_values)                
             return
         time.sleep(0.1)
         all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
     if None in all_values.values():
         raise ("Never got values for all nodes: %r." % all_values)
     return
 def test_poll_all_plus_exceptions(self):
     SUBSCRIPTION_MANAGER._set_tunable_parameters({
         'minimum_poll_interval':
         0.0,
     })
     nrt1to4bad5to6 = {}
     nrt1to4bad5to6.update(self.nrt1to4)
     nrt1to4bad5to6['/services/time/is/an/illusion'] = (
         '/services/time/is/an/illusion')
     nrt1to4bad5to6['/services/exception'] = '/services/exception'
     sid = SUBSCRIPTION_MANAGER.create_polled(nrt1to4bad5to6)
     nrt = SUBSCRIPTION_MANAGER.node_reference_table(sid)
     if nrt != nrt1to4bad5to6:
         raise "Initial node reference table mismatch."
     # Check that each invokation gets all values.
     for i in range(0, 10):
         all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
         if len(all_values) != len(nrt1to4bad5to6):
             # We did not get all 4 values!
             raise ("poll_all(self.nrt1to4) did not return all values."
                    " (%d out of %d)" %
                    (len(all_values), len(nrt1to4bad5to6)))
     # Check that (eventually) all the values are result dictionaries.
     all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
     t1 = time.time()
     while (time.time() - t1) < 1.0:
         if None not in all_values.values():
             self.__all_plus_exceptions_check(all_values)
             # Finally, test that a new subscription gets the correct
             # results.
             time.sleep(0.1)
             sid = SUBSCRIPTION_MANAGER.create_polled(nrt1to4bad5to6)
             time.sleep(0.1)
             all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
             self.__all_plus_exceptions_check(all_values)
             time.sleep(0.1)
             all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
             self.__all_plus_exceptions_check(all_values)
             return
         time.sleep(0.1)
         all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
     if None in all_values.values():
         raise ("Never got values for all nodes: %r." % all_values)
     return
 def test_adjusted_minimum_poll_interval(self):
     SUBSCRIPTION_MANAGER._set_tunable_parameters({
         'minimum_poll_interval':
         0.2,
     })
     sid = SUBSCRIPTION_MANAGER.create_polled(self.nrt1to4)
     nrt = SUBSCRIPTION_MANAGER.node_reference_table(sid)
     if nrt != self.nrt1to4:
         raise "Initial node reference table mismatch."
     # Check that each invokation gets all values.
     for i in range(0, 10):
         all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
         if len(all_values) != len(self.nrt1to4):
             # We did not get all 4 values!
             raise ("poll_all(self.nrt1to4) did not return all values."
                    " (%d out of %d)" %
                    (len(all_values), len(self.nrt1to4)))
     # Check that (eventually) all the values are result dictionaries.
     t1 = time.time()
     while (time.time() - t1) < 1.0:
         all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
         if None not in all_values.values():
             # ID3 is /services/time/UTC/milliseconds which should
             # change "really fast."
             c1 = all_values[self.ID3]['changes']
             time.sleep(1.0)
             all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
             c2 = all_values[self.ID3]['changes']
             if (c2 - c1) > 6:  # 0.2 == Max 5/second.
                 raise ("1/5th second throttle failed,"
                        " %r changed %d times in one second.") % (
                            self.ID3,
                            (c2 - c1),
                        )
             return
         time.sleep(0.1)
     raise ("Never got changes for all four result dictionaries, %d." %
            len(all_values))
     return
 def test_fast_minimum_poll_interval(self):
     SUBSCRIPTION_MANAGER._set_tunable_parameters({
         'minimum_poll_interval':
         0.0,
     })
     sid = SUBSCRIPTION_MANAGER.create_polled(self.nrt1to4)
     nrt = SUBSCRIPTION_MANAGER.node_reference_table(sid)
     if nrt != self.nrt1to4:
         raise "Initial node reference table mismatch."
     # Check that each invokation gets all values.
     for i in range(0, 10):
         all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
         if len(all_values) != len(self.nrt1to4):
             # We did not get all 4 values!
             raise ("poll_all(self.nrt1to4) did not return all values."
                    " (%d out of %d)" %
                    (len(all_values), len(self.nrt1to4)))
     # Check that (eventually) all the values are result dictionaries.
     all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
     t1 = time.time()
     while (time.time() - t1) < 1.0:
         time.sleep(0.1)
         all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
     if None in all_values.values():
         raise (("Never got changes for all four result dictionaries, %d.\n"
                 "Values: %r") % (len(all_values), all_values))
     # ID3 is /services/time/UTC/milliseconds which should
     # change "really fast."
     c1 = all_values[self.ID3]['changes']
     time.sleep(1.0)
     all_values = SUBSCRIPTION_MANAGER.poll_all(sid)
     c2 = all_values[self.ID3]['changes']
     if (c2 - c1) < 25:  # It's usually 500 on fearfactory...
         raise "%r only changed %d times in one second." % (
             self.ID3,
             (c2 - c1),
         )
     return