Skip to content
  • Anton Joubert's avatar
    Rework TestContext short-name access · 67899c75
    Anton Joubert authored
    Major rework:
    - Change priority in `DeviceProxy` and `AttributeProxy` constructors.
      If TestContext inactive, use TRL (Tango Resource Locator) as provided by caller.
      If TestContext active and short TRL, replace with fully-qualified TRL, using
      TestContext host and port.  If replaced TRL fails, try short TRL.
    - Improve error reporting if these constructors fail, even after retying.
    - With the `Group` object, we still don't do the retry, as there
      isn't a convenient place to put that code in PyTango.
    - When TestContext is synchronising the port between (possible) subprocess and parent, no need for background thread.
    - TestContext doesn't need to determine the host again in `pre_init` - it is already known
      before we start the device server.
    - Add a friendly name to the TestContext DS launcher process/thread to make
      debugging easier.
    - Startup state of device server can be represented with just Exception object.
      In Python 3 this includes the traceback info, so no need to handle it separately.
    - No need to mess with environment variables, we can just use a global variable.
    - Use leading underscores for utility functions.  Even though they are used in other modules, so should be public, we don't want PyTango users to use them.
    - Change URI abbreviation to TRL.
    - Add some tests for nested `DeviceTestContext` - this is not recommended usage,
      but we test it since it used to be possible.  Update documentation as well.
    - Minor changes to multidevicetestcontext example - Python types preferred.
    67899c75