-
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.