Releases: rahul-verma/arjuna
Arjuna 1.1.34
- Added !join construct support in YAML files.
- Upgraded pytest and selenium versions.
- Arjuna now needs Python 3.8+
Arjuna 1.1.32
- Arjuna acts as a pytest plugin for the purpose of test execution.
- CLI options are significantly updated. Old usage is deprecated. Refer the new docs.
For next versions, newer pytest versions will be tried out. Once the usage stabilizes, Arjuna 1.2 production build will be released.
Arjuna 1.1.31
- Support for axes locator
- Added axes locator and made minor doc edits for name of app in GuiAuto chapter.
Arjuna 1.1.30
Following are the significant changes since last release:
- Support for OR relationship among different values of same locator type - coded as well as GNS.
- Support for Visual Relationships
- Coded - Added at App/Page level.
- GNS Support added - Can provide label from same GNS file.
- Coded - widget call can be used to provide as relationship rather than existing element.
- GNS supports chain of relation: label1 -> label2 -> label3
- When multiple locators are provided with an OR relationship, relations are applied to each one of them.
- In GNS the relationship labels can contain Arjuna placeholders and then the parent label can be formaated as usual using gns.formatter call.
- Nested element finding falls back to direct finding with WebDriver as JS execution support exists only at driver level in Selenium.
- with.JS and With.Point is supported at element level, however it does not do nested element finding, rather uses driver itself.
- The fallback mechanism for JS, Point and Relative locators has been added so that such locators can be defined without issues in GNS files or coded GuiSections which have root element set for them.
- 'pos' meta key in widget meta data:
- Supported in coded as well GNS format.
- Supported in nested element finding.
- Value can be an int, a list, an extractor string literal, an extractor specification dict or an extractor object.
- Docs added for additional OR support, Visual Relationships and position filters
- Rearranged locator docs to place coded and GNS entries next to each other.
- Added GuiWidgetDefinitionError as an exception to TPI.
- Added support for .local files for the following: (if present these files override the corresponding regular config files.)
- project.local.yaml
- data.local.yaml
- envs.local.yaml
- sessions.yaml, stages.yaml, groups.yaml
- Support for empty sessions.yaml, stages.yaml and groups.yaml. Named exception raised rather than NoneType exception.
- Added explicit requirement for urllib3
Arjuna 1.1.26
- Support for bases in Data Entity - building a data entiry from other data entities.
- Added doc for YAML's handling of boolean strings.
- Added tests and docs for Data Spaces.
Arjuna 1.1.25
This build introduces positional placeholders in withx, improved attr() call, easier support for attr names that conflict with Pyhon keywords.
- Support for anonymous/positional $$ placeholders in withx extended locator definitions.
- attr() call now accepts a single key-value pair instead of two positional arguments. Conflicting Python name is prefixed with two underscores (__)
- node() call simplified. Conflicting Python name is prefixed with two underscores (__).
- Updated Locator Docs to reflect the above improvements.
- Fix in GuiDropDown logic - changed 'tag' to 'tags'.
- Added TPI exceptions to global import.
- Fix in attr locators used in withx
1.1.23
Updates available in this release:
- node Locator
- Converts to Xpath or CSS Selector based on condition of text matching (text or star_text or dot_text)
- Added provision for star_text which converts to *//text() instead of text() for specified text. It can also be specified as *text.
- Added provision for dot_text which converts to . instead of text() for for specified text. It can also be specified as .text.
- tags support is added to define multiple tags which are treated as a relative sequence of tags. Either tag or tags should be used. tags can take a single tag, multiple space separated tags as well as a list of tag strings.
- classes support is added to define one or more classes as string or sequence.
- tag locator changed to tags
- Is converted to CSS selectors
- The tags can be provided as space separated tags string or sequnce of tag strings.
- When more than one tag is supplied, the sequnce is assumed to be a descendant sequence (not immediate children)
- Docs updated and improved for locators.
Arjuna 1.1.22
Updates available in this version:
- Support for 'node' as a valid selector (with type)
- Can be used programmatically in calls e.g. element(node=node(**kwargs))
- If the names of attrs conflict with python keywords (e.g. for), you can also provide an 'attrs' dict: element(node=node(a=b, attrs={'c' : 'd'}))
- The values in attrs dict are overriden by the direct kv paris supplied in node call.
- 'tag' is a special key and represents the tag name of the node and is not treated as an attribute.
- 'text' is a special key and represents the text content of the node and is used for matching.
- node represents partial match for attribute contents, bnode partial match at beginning of attributes contents and fnode represents full content of node attributes.
- There is an AND relationship among all attribute values supplied.
- You can use formatters to format the '$$' placeholders within keys and values of node, bnode and fnode.
- These selectors can be used in GNS files just like other selectors.
- Updates in Attribute related locators.
- Change in the way attr, fattr are specified in code and GNS. Breaks current usage.
- Rather than name and value arguments, direct value will be supplied as key value pair.
- Specifying tag in the definition will not be supported.
- node selectors will support tag and multiple attributes to bridge this gap and provide more advanced functionality.
- battr, eattr support
- attr related locators are converted to CSS Selectors instead of XPath.
- Withx Enhancements
- Withx can be used to define custom locators using node, bnode and fnode. Placeholders and kwargs work for attr names as well as values.
- Withx supports $$ placeholders like normal GNS.
- Withx suports C,L,R placeholders.
- Name changes: Attr -> attr, NVPairs -> nvpairs
- Comprehensive documentation of locators in coded and GNS formats along with withx documentation.
- More information in exceptions that are raised when linked projects represent wrong paths.
Arjuna 1.1.18
Changes since 1.1.0 are:
- Added datetime helper module in TPI
- Time, DateTime, DateTimeDelta, DateTimeDeltaBuilder, DateTimeStepper classes. - Fix for non-existing central withx.yaml.
- Fix by Stefan for MySQL connector error.
- Added doc for project linking.
- Added doc for using selection rules in CLI and groups.yaml
- Doc comments for Text parsing module.
- Added documentation for Text parsing under Parsing section.
- Names of text parsers have been updated.
- Return type of headers in text file changed from list to tuple.
- DataRecord - indexed_values_as_json and named_values_as_json properties added.
- Added versions of dependencies in setup.py
- Arjuna version is included in the HTML report.
- Added Text parsing class with various File reading formats to TPI.
- Added support to ignore insecure SSL certificate in Web Gui Automation.
- ArjunaOption.ALLOW_INSECURE_SSL_CERT can be set to False to switch this off (True by default). The browser should support this capability.
- Concept of Linked Arjuna Projects introduced. An Arjuna Project can be linked to other Arjuna Projects (only one level of relationship allowed).
- -l/--link-project CLI option added.
- Support for auto-merger of default ref configuration for parent project with all linked projects (including default data & env options merger with ref.)
- Support for auto-merger of data and environment configurations. The combinations are also included. However, combinations are created only project-wise (i.e. linked project data or env is not combined with data/env of top or other linked projects.)
- Support for auto-import of test resources defined in linked projects in the parent project (conftest.py auto-generation is improved to cater to this.)
- Support for fallback lookup of DBAuto SQL files from top project to linked projects in reversed order.
- Support for auto-merger of data references. If data references have same names, then preference order is top project and then linked projects in reverse order.
- Rudimentary support for DB Automation (experimental)
- Added DBAUTO_DIR and DBAUTO_SQL_DIR Arjuna options.
- DB.mysql factory.
- --rename-report option added to run-group CLI. Reports are generated without session and stage prefix for this option.
- Support for double click in GuiElement.
- HTML report name changed.
- Added more project meta data to HTML report as well as Arjuna & pytest command line, reference configuration name.
- DEPS_DIR can be a path relative to the root of an Arjuna Test Project.
- run-group option works even if sessions.yaml and stages.yaml are empty.
- Fix in token logic for Client Grant in HTTP.
- Added support for Dependency directory (ArjunaOption.DEPS_DIR). Defaults to /dependency. Can be overriden in reference conf.
- Fixed sesssion level header addition in Http Session.
- Support for Python list as content in Http methods.
- Added support for hard refresh.
- The pytest command on Windows has been changed w.r.t. capturing of console output/logs as it causes errors.
Arjuna 1.1.0 Production Release
Changes since 1.0.17 are:
Docs
- Updated format of various docs
- Included third party library info in index.rst
- Updated license and notice files.
- Data reference TPI docs.
- Added Test Reporting section.
- Docs for Screenshooter and Network recorder protocols.
- Stage level list of overridable configuration options.
- Logging and Tracking
- Updated HTTP Auto docs to include Http Facade class.
- Multiprocessing for parallelism reverted to multithreading. Needs to be explored in future versions.
- register_configs hook name changed to register_ref_confs for clarity.
HTTP Auto- Http.content.json implements custom JSON encoder to handle nested structures containing Yaml or Json custom objects.
Fixes - Fixed oauth_implicit_grant_session in http.py.
- Http.content.json implements custom JSON encoder to handle nested structures containing Yaml or Json custom objects.