Releases: vyanezz/TestFlow
v1.4.0 – New request interception and FlowWrapper
✨ Context manager for request interception
🔹A context manager has been implemented, allowing browser actions to be wrapped inside with blocks while capturing the HTTP requests triggered by those actions.
🔹The request is resolved after the block execution, ensuring proper synchronization with the test flow.
🔹A dedicated wait logging state has also been added.
Example:
with test.expect_request(endpoint="https://httpbin.org/post", method="POST") as flow:
test.click("xpath", "//button[@type='submit']")
flow.assert_status(200)
✨ FlowWrapper abstraction & improved validation API
🔹A FlowWrapper abstraction layer has been introduced on top of RequestValidator and ResponseValidator, removing the need to interact with them directly.
🔹It provides a more intuitive, assert-based API for validating captured requests and responses, improving readability and usability of tests.
🔹Additionally, wait_for_request now returns a FlowWrapper, enabling a consistent validation interface across both explicit waits and context-based interception.
Example:
flow = test.wait_for_request(endpoint="https://httpbin.org/post", method="POST")
flow.assert_status(200)
flow.assert_response_headers({...})
flow.assert_json({...})
v1.3.0 – Response validator, Driver logger, Driver configuration and new methods
✨ New ResponseValidator in ApiValidator
A complete HTTP response validator has been introduced to enhance network validation within tests.
🔹 Status code validation – ensures the response status matches the expected value.
🔹 Header validation – provides clear assertion errors when headers are missing or incorrect.
🔹 JSON body validation (json_body) – validates each field and pinpoints exactly which key/value is incorrect.
🔹 Form-urlencoded validation (form_urlencoded_body) – validates HTML form submissions, including suggestions for mistyped keys.
✨ WebDriver Enhancements
🔹 Added structured logging to driver actions for better debugging and traceability.
🔹 Introduced DriverConfig for flexible and scalable browser configuration.
🔹 Added new simple and intuitive methods to improve test readability and usability.
✅ New Test Example
🔹Added httpbin.py as a practical example.
🔹Demonstrates request/response validation with real form submissions.
v1.2.0
v1.2.0 – Request Validation Improvements
Powerful improvements to request validation in ApiValidator
✨ Key features:
🔹 Endpoint & HTTP method validation – ensures your request hits the correct endpoint with the right method.
🔹 Header validation – descriptive assertion errors if headers are missing or incorrect.
🔹 JSON body validation (json_body) – checks each field and tells you exactly which key/value is wrong.
🔹 Form-urlencoded body validation (form_urlencoded_body) – validates HTML form submissions, including suggestions for mistyped keys.
🔹 Returns the flow – so you can use it later for response validation.
v1.1.0
v1.1.0 – Configurable Logger, API Validator, and Core Refactor
✨ Configurable Logger: You can now enable centralized logging directly from TestAutomation(enable_logger=True).
🔎 ApiValidator Class: A new dedicated layer for validating API calls, including endpoint checks.
⏱ Configurable Timeout: Validation methods now support configurable timeouts, both globally when initializing the validator and per individual call.
♻️ Refactor of TestAutomation: Simplified framework initialization, removing the need to call .start_test(), with automatic delegation of methods to driver, traffic, and validator.