def test_plugin_for_address(test_plugin): # Get by protocol assert isinstance(plugin_for_address('tst://tst:this'), test_plugin) assert plugin_for_address('tst:this') is None # Default protocol config.DEFAULT_PROTOCOL = 'tst' assert isinstance(plugin_for_address('tst:this'), test_plugin)
def test_pydm_connection(test_plugin): # Plugin, Channel and Registry chan = PyDMChannel('tst://Tst:this') plugin = plugin_for_address(chan.address) plugin_no = len(plugin.connections) # Make a connection chan.connect() assert len(plugin.connections) == plugin_no + 1 # Remove connections chan.disconnect() assert len(plugin.connections) == plugin_no
def __init__(self, parent=None, init_channel=None, replace=None): QListWidget.__init__(self, parent) PyDMWidget.__init__(self, init_channel=init_channel) self._buffer_size = 1000 self._prepend_date_time = True self._display_format_type = DisplayFormat.String self._string_encoding = "utf_8" self._date_time_fmt = '%Y/%m/%d-%H:%M:%S' self._replace = list() if replace is None else replace channel = '' if init_channel is None else init_channel self._plugin_conns = plugin_for_address(channel).connections
def disconnect(self, destroying=False): """ Disconnect a PyDMChannel """ if is_qt_designer() and not config.DESIGNER_ONLINE: return try: plugin = plugin_for_address(self.address) if not plugin: return plugin.remove_connection(self, destroying=destroying) except Exception as exc: logger.exception("Unable to remove connection " "for %r", self)
def connect(self): """ Connect a PyDMChannel to the proper PyDMPlugin """ if is_qt_designer() and not config.DESIGNER_ONLINE: return logger.debug("Connecting %r", self.address) # Connect to proper PyDMPlugin try: plugin = plugin_for_address(self.address) plugin.add_connection(self) except Exception: logger.exception("Unable to make proper connection " "for %r", self)
def reset_signal_plugin(): """ Completely restart the sig:// plugin. After the restart, there will be no open SignalConnection objects and nothing in the signal registry. Some tests are easier to express by repeating signal names, which will cause the signal plugin to ignore the new devices in favor of the previously saved devices, which are no longer available to be manipulated or tested. """ signal_registry.clear() plugin = plugin_for_address('sig://test') for channel in list(plugin.channels): channel.disconnect()
def test_pydm_connection(test_plugin): # Plugin, Channel and Registry chan = PyDMChannel('tst://Tst:this3') plugin = plugin_for_address(chan.address) plugin_no = len(plugin.connections) print('Connections Before:') for k, v in plugin.connections.items(): print('\t', k, ' - ', v) # Make a connection chan.connect() print('Connections After:') for k, v in plugin.connections.items(): print('\t', k, ' - ', v) assert len(plugin.connections) == plugin_no + 1 # Remove connections chan.disconnect() assert len(plugin.connections) == plugin_no