Skip to content

Releases: rahul-verma/arjuna

Arjuna 1.2.24

04 Jul 10:25
Compare
Choose a tag to compare

Critical Fix for XPath based node conversion.

Arjuna 1.2.22

28 Jun 11:52
Compare
Choose a tag to compare
  • Support for drag and drop operations for GuiElement.
  • Support for attrs in node for XPath and CSS Selector generation.
  • Initial support for frame handling. GuiFrame is a new class added with simple to use features.
  • Added documentation for various GuiElement methods. Rearranged Gui Auto docs.
  • Support for OAuth Auth Grant service added by Stefan.

Arjuna 1.2.19

19 Mar 08:52
Compare
Choose a tag to compare
  • CRITICAL FIX: Xml.node_locator call retained attr dict values in successive calls. Fixed.

Arjuna 1.1.18

28 Feb 05:41
Compare
Choose a tag to compare

This release includes a major feature addition for Email reading automation along with support for URL Redirection security test and some minor enhancements in HTTP component and XML/HTML/Text parsers.

  • Support for Reading Emails using IMAP (instead of POP) as it provides more stability and features.
  • Support to connect to a given mailbox. Inbox is the default.
  • State mechanism to identify new emails using save_state.
  • The emails are filterable by sender, subject, content.
  • The emails are got as latest first by default (IMAP gives the latest one at end). Can be overriden.
  • Support for getting top x emails.
  • Reading the email is a waitable event as there might be some delay in getting email from server.
  • Server host, port, user, password etc are configurable. SSL usage is default.
  • Support for finding all unique links.
  • Support for HTML as well as text content in emails. Support for Multi-part Email.
  • Support for easily available meta data of email like its sender, recipient, date, content and support for inquiring any custom headers.
  • There is a lot of state management involved in maintaining connection to a mailbox. These intricacies are encapsulated to the max extent possible.
  • The code represents a natural tester-oriented interface for automation.
  • Added support for text and attr dict based search in XML/HTML NodeLocator.
  • Added documentation for Email Reading Automation
  • Introduced NotSet class for cases where code needs to differentiate not setting a value from Python None.
  • An exception is raised if relative URL is provided for an HTTP request when the corresponding Service base URL is not set.
  • Empty content POST/PUT/PATCH requests are allowed when request content handler is set at Service Level or HTTP Content object is provided at a request level.
  • Empty content is supported for all content types except File/Multipart data.
  • Added documentation for Malicious URL redirection HTTP action.
  • HTTP Post and Put requests without content are allowed. Same as content="".
  • Added URL Redirection security test action.
  • FIX: Fixed Group selection.

Arjuna 1.2.13

01 Dec 10:44
Compare
Choose a tag to compare
  • BUGFIX: HTTP layer tests at times got stuck after one test. This seems to happen when the socket library is not passed a timeout.
  • A default socket timeout of 60 seconds is now configured.
  • It can be changed at project level or in CLI options using SOCKET_TIMEOUT property.
  • PyYAML version upgraded to 6.0.

Arjuna 1.2.12

27 Oct 06:43
Compare
Choose a tag to compare

Following are the significant changes in this build:

  • Added assert_or and assert_and methods to Asserter object.
  • Added support for or, and constructs in HTTP message.
  • Added built-in security tests at HTTP layer:
    • Autocomplete field
    • Cookie HTTPOnly and Secure
    • CORS policy
    • Frameable Response
    • Information Disclosure
    • Minimum JS Version
    • Private IP disclosure
    • Private Resource Accessible
    • Strict Transport Policy
    • Vulnerable JS Version
  • Fixed logic in HTTP stores in case of extraction failure.
  • Added Security testing section for built-in tests.
  • Rearranged docs for Parsing formats.
  • arjuna_format_str used internally is now a bound method format() of Text object and a part of TPI.

Arjuna 1.2.10

12 Sep 11:10
Compare
Choose a tag to compare

Following are the significant updates in this build:

  • Data Entity
    • Data Entities are mutable by default.
    • An object of a data entity can be made immutable by passing freeze=True as argument.
  • Random class
    • Added Random.person and Random.address calls to generate Person and Address data entity objects.
    • Added support for providing name and/or domain in Random.email
    • Added Random.alphabet method
    • Revamped documentation for Random class and wrote additional tests
  • HTTP Message
    • Added support for strict/non-strict mode in store section. Default is strict.
    • Added support for jpath in store section.
  • HTTP Action
    • Added support for aliasing of data
    • Data can flow between messages as the action store is updated with extracted data from messages.
    • Documention created for most common use cases.
  • Fixes in Xml.from_str method.

Arjuna 1.2.9

31 Aug 13:41
Compare
Choose a tag to compare

The build contains backward incompatible changes for placement of resource module/package and Http.service is to be used instead of Http.session. See the full list of additional features and modifications below:

  • Hook restructuring: Resources, Entities and Config hooks will now be present under project/libs/hook sub-package.
  • Data Entity and Data Generator support added to HTTP Action in SEAMful model.
  • Arjuna Format String now supports special lookups
    • data.xyz looks up in data container.
    • abc.xyz looks up in abc container.
    • xyz looks up for a direct name xyz and then also looks up in data container.
    • Conceptual support added for a.b.c or even a.b.c[123] style placements. This is yet to be tested.
  • Internal module added for dynamic importing.
  • New Arjuna Options added for hook packages.
  • Step wise logging added for HTTP Action and Message for clarity. Custom string representations added to the objects themselves.
  • Added dictionary behavior to dynamic Data Entity that Arjuna generates using data_entity call.
  • Objects of these classes are immutable.
  • Added remove support to all dictionary methods and as_dict method to exclude one of more keys.
  • Arjuna's HTTP Layer automation now exposes only HttpService as a top object for doing seamful as well as simple automation.
  • HttpSession is an Arjuna internal object (non-TPI). Http class methods for sending requests have been removed as in practice non-auto cookie management is rarely required. This reduces the public interface of Arjuna thereby simplying learning curve and documentation.
  • Initial support for HTTP Action externalization added.
  • Added Hover as a waitable operation.
  • JsonDict updates getattr method to support returning of Arjuna Json objects (JsonDict/JsonList).
  • Fix in logger functionality to convert msg to string representation to allow non-string objects to be logged.
  • Fixes in assert_match method of JsonDict.
  • Data Record is now aware of Arjuna's generator construct and calls its generate() method automatically even if not called explicitly.
  • Added jsonpath-ng==1.5.3 to dependencies.
  • Support for Min len in Random string generation. Added provision for strict usage and custom delimiter.
  • Added fixed_length_str method in Random class
  • JsonDict.assert_match: ignore_keys is changed to ignore argument which supports Jpath based igorning of content in JsonDict while matching.
  • JsonDict now support del keyword for deleting an item.
  • Added pop/extend/append methods to JsonList

Arjuna 1.2.0

01 Jul 11:38
Compare
Choose a tag to compare

This release marks the beginning of 1.2.x series of Arjuna with 40+ builds released in the 1.1.x series. More features in web automation as well as SEAMful HTTP Layer automation will be the 2 primary targets for this series along with any fixes in existing features.

  • Minor fixes in this build in the Json objects.
  • Docs added for HTTP Message abstraction and more information added to HTTP Layer automation (with docs made more modular than earlier).

Arjuna 1.1.43

23 May 15:13
Compare
Choose a tag to compare

Arjuna architecture is changed. Rather than launching pytest.main(), it acts as pytest plugin. Support for custom HTTP proxy is added. HTTP Externalization support is in progress. Message part of HTTP abstraction model is decently covered with more features on the way. Many example tests have been added in arjex. Following is a more complete list:

  • 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.
  • Added !join construct support in YAML files.
  • Upgraded pytest and selenium versions.
  • Arjuna now needs Python 3.8+
  • Arjuna header is shown when any command is executed.
  • Updated copyright info.
  • Added advanced assertions:
    • approximate equality comparison: assert_approx_equal and assert_approx_not_equal
    • asserting raised exceptions: assert_exceptions (callable or as context manager). Supports regex match for string repr of exception.
  • --project accepts project path relative to current working directory. It also accepts '.'
  • Internal improvements to cater to pytest's auto-disocvery mehchanism in situation of multiple projects.
  • Debug mode in VSCode works. Arjuna selection uses a uniform way of determining qual name for all situations.
  • Fixed new Arjuna test project creation
  • Changed laxml dependency to lxml>=4.4.1
  • A custom Http Proxy can be set for GUI Automation and HTTP Automation.
  • Arjuna options - HTTP_PROXY_ENABLED, HTTP_PROXY_HOST, HTTP_PROXY_PORT introduced.
  • Proxy is disabled by default.
  • Stefan's mix for size assertion exception message merged.
  • Fix for max_wait in GNS
  • Fix in proxy setting for Selenium
  • Fix in Json.from_dict
  • HttpAuto
    • strict argument has been deprecated in HTTP method calls.
    • Support for externalization of HTTP msg (Basic Support. More features will unfold in upcoming builds.)
    • remove_none default has been changed to True for Data Entity's .as_dict() method.
    • Added support for data_entity as a valid content without converting using as_dict().
    • Added support for Parsed cookie and HttpCookie Arjuna class.
    • Support for checking secure and HttpOnly flags.
    • HttpRequest.text returns Arjuna's Text object. For raw text, use .content
    • Support for has/match sections for basic existence and equality assertion on content.
    • Support for store and validate sections in message for advanced assertions beyond has (exists) and match (equality). Works for headers as well.
  • JsonDict can be compared with YamlDict or DataEntity. JsonList can be compared with YamlList.