Exemplo n.º 1
0
 def setUp(self, properties=None):
     """Start Pool DS and register extensions.
     """
     db = PyTango.Database()
     # Discover the Pool launcher script
     poolExec = whichexecutable.whichfile("Pool")
     # register Pool server
     pool_ds_name = "Pool/" + self.pool_ds_name
     pool_free_ds_name = get_free_server(PyTango.Database(),
                                         pool_ds_name)
     self._starter = ProcessStarter(poolExec, pool_free_ds_name)
     # register Pool device
     dev_name_parts = self.pool_name.split('/')
     prefix = '/'.join(dev_name_parts[0:2])
     start_from = int(dev_name_parts[2])
     self.pool_name = get_free_device(db, prefix, start_from)
     self._starter.addNewDevice(self.pool_name, klass='Pool')
     # Add properties
     if properties is not None:
         for key, values in properties.items():
             db.put_device_property(self.pool_name,
                                    {key: values})
     # start Pool server
     self._starter.startDs()
     # register extensions so the test methods can use them
     self.pool = PyTango.DeviceProxy(self.pool_name)
Exemplo n.º 2
0
 def setUp(self, pool_name):
     """Start MacroServer DS.
     """
     try:
         db = PyTango.Database()
         # Discover the MS launcher script
         msExec = whichexecutable.whichfile("MacroServer")
         # register MS server
         ms_ds_name = "MacroServer/" + self.ms_ds_name
         ms_free_ds_name = get_free_server(db, ms_ds_name)
         self._msstarter = ProcessStarter(msExec, ms_free_ds_name)
         # register MS device
         dev_name_parts = self.ms_name.split('/')
         prefix = '/'.join(dev_name_parts[0:2])
         start_from = int(dev_name_parts[2])
         self.ms_name = get_free_device(
             db, prefix, start_from)
         self._msstarter.addNewDevice(self.ms_name, klass='MacroServer')
         # register Door device
         dev_name_parts = self.door_name.split('/')
         prefix = '/'.join(dev_name_parts[0:2])
         start_from = int(dev_name_parts[2])
         self.door_name = get_free_device(db, prefix, start_from)
         self._msstarter.addNewDevice(self.door_name, klass='Door')
         db.put_device_property(self.ms_name, {'PoolNames': pool_name})
         # start MS server
         self._msstarter.startDs()
         self.door = PyTango.DeviceProxy(self.door_name)
     except Exception, e:
         # force tearDown in order to eliminate the MacroServer
         print e
         self.tearDown()
Exemplo n.º 3
0
def taurus_test_ds():
    """
    A pytest fixture that launches TangoSchemeTest for the test
    It provides the device name as the fixture value.

    Usage::
        from taurus.core.tango.test import taurus_test_ds

        def test_foo(taurus_test_ds):
            import taurus
            d = taurus.Device(taurus_test_ds)
            assert d["string_scalar"].rvalue == "hello world"

    """
    ds_name = 'TangoSchemeTest/unittest/temp-{:08d}'.format(
        randint(0, 99999999))

    # get path to DS and executable
    device = getResourcePath('taurus.core.tango.test.res', 'TangoSchemeTest')
    # create starter for the device server
    _starter = ProcessStarter(device, 'TangoSchemeTest/unittest')
    # register
    _starter.addNewDevice(ds_name, klass='TangoSchemeTest')
    # start device server
    _starter.startDs()

    yield ds_name
    d = PyTango.DeviceProxy(ds_name)
    d.Reset()
    _starter.stopDs(hard_kill=True)
    # remove server
    _starter.cleanDb(force=True)
Exemplo n.º 4
0
 def setUpClass(cls):
     """ Create and run a TangoSchemeTest device server
     """
     # get path to DS and executable
     device = getResourcePath('taurus.core.tango.test.res',
                              'TangoSchemeTest')
     # create starter for the device server
     cls._starter = ProcessStarter(device, 'TangoSchemeTest/unittest')
     # register
     cls._starter.addNewDevice(cls.DEV_NAME, klass='TangoSchemeTest')
     # start device server
     cls._starter.startDs()
Exemplo n.º 5
0
 def setUp(self):
     """Start Pool DS and register extensions.
     """
     # Discover the Pool launcher script
     poolExec = whichexecutable.whichfile("Pool")
     # register Pool server
     pool_ds_name = "Pool/" + self.pool_ds_name
     pool_free_ds_name = get_free_server(PyTango.Database(),
                                         pool_ds_name)
     self._starter = ProcessStarter(poolExec, pool_free_ds_name)
     # register Pool device
     dev_name_parts = self.pool_name.split('/')
     prefix = '/'.join(dev_name_parts[0:2])
     start_from = int(dev_name_parts[2])
     self.pool_name = get_free_device(
         PyTango.Database(), prefix, start_from)
     self._starter.addNewDevice(self.pool_name, klass='Pool')
     # start Pool server
     self._starter.startDs()
     # register extensions so the test methods can use them
     self.pool = PyTango.DeviceProxy(self.pool_name)
Exemplo n.º 6
0
    def setUp(self):
        '''
        Requisites:
         - instantiate the widget
         - make sure that the the timeout server is ready
        '''
        # Call base class setup (instantiate the widget,...)
        BaseWidgetTestCase.setUp(self)
        # get path to DS and executable
        timeoutExec = getResourcePath('taurus.qt.qtgui.button.test.res',
                                      'Timeout')
        # create starter for the Timeout server
        self._starter = ProcessStarter(timeoutExec, 'Timeout/unittest')
        # register timeoutserver  #TODO: guarantee that devname is not in use
        devname = 'unittests/timeout/temp-1'
        self._starter.addNewDevice(devname, klass='Timeout')
        # start Timeout server
        self._starter.startDs()

        # Configure the widget
        self._widget.setModel(devname)
Exemplo n.º 7
0
    def setUp(self, properties=None):
        """
        Start MacroServer DS.

        :param properties: dictionary with the macroserver properies.

        """
        try:
            db = PyTango.Database()
            # Discover the MS launcher script
            msExec = whichexecutable.whichfile("MacroServer")
            # register MS server
            ms_ds_name_base = "MacroServer/" + self.ms_ds_name
            self.ms_ds_name = get_free_server(db, ms_ds_name_base)
            self._msstarter = ProcessStarter(msExec, self.ms_ds_name)
            # register MS device
            dev_name_parts = self.ms_name.split('/')
            prefix = '/'.join(dev_name_parts[0:2])
            start_from = int(dev_name_parts[2])
            self.ms_name = get_free_device(db, prefix, start_from)
            self._msstarter.addNewDevice(self.ms_name, klass='MacroServer')
            # register Door device
            dev_name_parts = self.door_name.split('/')
            prefix = '/'.join(dev_name_parts[0:2])
            start_from = int(dev_name_parts[2])
            self.door_name = get_free_device(db, prefix, start_from)
            self._msstarter.addNewDevice(self.door_name, klass='Door')
            # Add properties
            if properties:
                for key, values in list(properties.items()):
                    db.put_device_property(self.ms_name, {key: values})
            # start MS server
            self._msstarter.startDs(wait_seconds=20)
            self.door = PyTango.DeviceProxy(self.door_name)
        except Exception as e:
            # force tearDown in order to eliminate the MacroServer
            print(e)
            self.tearDown()