def setUp(self): DefaultTestFixture.setUp(self) self.root = as_internal_node('/') self.input = CompositeNode() self.output = CompositeNode() self.input.configure({'parent': self.root, 'name': 'input'}) self.output.configure({'parent': self.root, 'name': 'output'}) self.input_value = SimpleValue() self.output_value = SimpleValue() self.input_value.configure({'parent': self.input, 'name': 'value'}) self.output_value.configure({'parent': self.output, 'name': 'value'}) self.aliases = Aliases() self.aliases.configure({'parent': self.root, 'name': 'aliases'}) self.alias_input = Alias() self.alias_input.configure({ 'parent': self.aliases, 'name': 'input', 'node_url': '/input/value' }) self.alias_output = Alias() self.alias_output.configure({ 'parent': self.aliases, 'name': 'output', 'node_url': '/output/value' }) self.input_value.set(1) self.output_value.set(0) return
def create_logger_alias(self, parent, name): logger_service = as_internal_node('/services/logger') if logger_service.has_child(name): # get_child returns the actual child, as_node would follow an # alias. trend_alias = logger_service.get_child(name) name_in_use = not isinstance(trend_alias, Alias) if not name_in_use: name_in_use |= as_internal_node( os.path.dirname(trend_alias.node_url)) is not self if name_in_use: raise ENameInUse(trend_alias.as_node_url()) else: trend_alias = Alias() parent_url = as_node(parent).as_node_url() quoted_name = urllib.quote(name, '') trend_alias.configure({ 'name': name, 'parent': logger_service, 'node_url': os.path.join(parent_url, quoted_name, quoted_name) }) return
def test_deferred_input(self): driver = PeriodicDriver() driver.configure({ 'name': 'driver', 'parent': self.output_value, 'input': '/aliases/deferred_input', 'period': 0.01 }) self.assert_(self.output_value.get() == 0, "Output already non-zero, bogus test...") driver.start() pause(0.1) Alias().configure({ 'parent': self.aliases, 'name': 'deferred_input', 'node_url': '/input/value' }) timeout_at = time.time() + 1.0 while self.output_value.get() == 0: if time.time() > timeout_at: self.fail("self.output_value never driven to 1.") pause(0.01) return
def factory(): from mpx.lib.node import Alias from mpx.lib import deprecated deprecated("mpx.service.alias.factory has been deprecated," " please use mpx.lib.node.Alias") return Alias()