Version 3.4.0
Added
EtrUtils: Add keyword
Release Reserved Portsthat release reserved ports fromGet Random Port.
Changed
Improve mechanism for getting random ports by optionally reserving them, by keeping socket open. This is done to prevent kernel from automatically assigning same port again. Sockets can still bind and listen to reserved ports as long as
SO_REUSEADDRis used.EtrUtils: Ports from
Get Random Portare reserved keyword if library is imported with:*** Settings *** Library EtrUtils reserve_ports=True
or using argument to override default:
${port} = Get Random Port reserve_port=TrueReserved ports can be released using keyword
Release Reserved Ports.etr.plugins.jinja2: Reserve ports from
etr.utils.get_random_port()during rendering of all template files. This ensures that the kernel does not assign the same port again for the duration of template processing. As ports are released there is the change other sockets bind in the meantime. The robot keywordGet Random Portis somewhat better because the kernel will not assign the reserved port, but also does not prevent other sockets from explicitly binding to it.
Relicensed to mainly LGPL-3.0-only with documentation remaining as ESO proprietary.
EtrProcess: Modified to support Robot Framework 7.3+ [EICSSW-2914].
Fixed
Fixed xunit parsing for nested robot suites, which could be seen as etr incorrectly reporting 0 tests executed even though tests were indeed executed.
Previous Versions
Added
Add list command (
etr list) that list configured tests.etr.plugins.robot: Add support for grouping tests. Can be used to run same test with different variables.
etr.plugins.robot: Add support for specifying robot variables and variable files.
Fixed
Use provided interval in EtrUtils keyword Wait For Connection.
Release local resources properly when
--resource-fileis not passed [EICSSW-2771].
Version 3.2.0
Changed
Modified unit tests to use pytest instead of nose.
Nomad integration tests are now skipped if nomad is not available.
Modifed tests to support Fedora 40/Python 3.12.
Removed build dependency to C and C++ compiler.
Version 3.1.3
Fixed
Corrected wrong version number in etr package reported in etr –version and doxygen documentation, caused by incomplete bump2version configuration [EICSSW-1999].
Changed
resources plugin prints acquired resources to console [EICSSW-1833].
tests: Improved integration tests by explicitly specifying nomad loopback interface and use python3 executable everywhere in order to work on Fedora 38.
Version 3.1.2
Changed
Removed html output from pytest as this is not available on Fedora. A plain-text log file is used instead.
Version 3.1.1
Fixed
EtrProcess: Fixed problem where temporary log files were not cleaned up as they should. This was caused by the library being initialized a second time by Robot Framework which cleared the state of known temporary files to clean up.
EtrProcessnow protects against this.
Version 3.1.0
Release v3.1.0 of etr is a backwards compatible release with a few minor improvements.
Added
EtrProcess: New Robot Framework support library
EtrProcesswhich is a drop-in replacement to the standard libraryProcesswith the addition that it sets up file based buffers for stdout and stderr outputs and terminates orphaned processes automatically. The automatic file-backed buffering prevents possible stalls/deadlocks due to blocking write to stdout/stderr due to exhausted PIPE buffers (typically 4096 bytes).
Changed
etr.plugins.robot: Improved merged report by automatically naming top-level suite after directory containing the configuration file (
etr.yaml). This can be explicitly named using therobot/mergedNameattribute of the configuration file.
Version 3.0.0
Release v3.0.0 of etr comes with a few minor features as well as some stability and user experience improvements.
New Features
EtrJson: New Robot Framework support library EtrJson that provides keywords for conversion to/from JSON.
etr.plugins.jinja2: Added support for controlling Jinja2 template rendering order using an array of file pairs:
version: "1.0" # ... jinja2: files: - "src/first.j2": "src/first" - "src/second.j2": "src/second"
etr.plugins.jinja2: Added support for global variables between Jinja2 templates.
// template1.j2 {# Set global variable in one template #} {% do globals.update(variable="value") %} // template2.j2 {# Use variable set in template1.j2 #} {{ globals.variable }}
Note
When assuming a specific template order like this, the templates source files must be ordered using an array in the configuration file to ensure correct rendering order.
Added experimental (and undocumented) pytest plugin.
Changed/Removed Features
Removed support for file system isolation with osfMount. osfMount has not been delivered with the development environment for some time so it made no sense to keep the support in etr.
Improvements
etr.plugins.robot: Merged reports from all executed robot tests are created under
logs/merged_report.htmandlogs/merged_logs.htm.Improved diagnostic output when a test fail, to display where log files containing additional information is located.
Improve diagnostics by performing multiplexed reads from subprocesses which are logged to logs/etr.log.
Improved test coverage and fixed lint warnings.
Compatibility
This version of etr breaks compatibility w.r.t. removal of file system isolation support. No other breaking changes are made.
Version 2.0.0
Release v2.0 of etr comes with a few minor features as well as some stability and user experience improvements.
New Features
etr provides a Robot Framework utility library EtrUtils with keywords like GetRandomPort to get random free ports that can be used during the tests.
etr also provides the possibility to get a random free port in the Jinja2 renderer:
random_port = {{ etr.utils.get_random_port() }}
etr attempts to trace and clean up orphaned processes after Robot Framework test execution.
Added –version option that reports the version number.
Improvements
Use base name from test files in log files to make it easy to identify. For example a singular robot test src/foo.robot now logs to logs/00_foo_log.htm.
Improved test coverage and fixed a number of lint warnings.
Added stable exit/return codes for CI to be able to identify difference between e.g. test failure and internal errors.
Improved logging overall and reduced default log verbosity and moved logs targeted towards etr developers to debug-level (etr -vv).
Compatibility
This version of etr is backwards compatible with previous release.