31 Commits
Author SHA1 Message Date
Black_Raven 2e7c69c5af docs: Added documentation for models and methods 2026-08-24 17:03:31 +03:00
Black_Raven c26c60f679 test(yamlreaders): Add tests for all parsers
- TestBaseReader: abstract class
- TestYamlReader: validate, parse, steps, requests, extracts, asserts
- TestPostmanReader: validate, parse, nested items, headers, body
- TestOpenAPIReader: validate, parse, step names, methods, paths, asserts
- TestGetReader: auto-detection of formats
2026-08-24 17:03:31 +03:00
Black_Raven e9cfdd9e94 test(models): Add comprehensive tests for all model classes
- TestAuthModel: default values, credentials
- TestRequestModel: default/custom values
- TestExtractModel: values, header source
- TestAssertModel: status/json asserts
- TestStepModel: with request, extracts, asserts
- TestTestModel: default values, full model
- TestContext: resolve variables, extracted values
- TestExtractor: body, nested, status, header extraction
- TestValidator: status success/failure, empty asserts
- TestExecutor: URL resolution with variables
- TestStepResult: step result creation
- TestTestResult: all passed, one failed, empty steps
2026-08-24 17:03:31 +03:00
Black_Raven 6ae350b48c fix(yamlreaders): Improve format auto-detection in get_reader()
Now properly detects Postman and OpenAPI formats by parsing YAML content
2026-08-24 16:46:29 +03:00
Black_Raven 805b28e344 refactor(models): Add _resolve_url method to Executor
Extracted URL resolution logic into separate method for better testability
2026-08-24 16:46:28 +03:00
Black_Raven 130d06351d docs: Add yamlreaders documentation to README
- BaseReader abstract class
- YamlReader for custom YAML format
- PostmanReader for Postman Collection v2.1
- OpenAPIReader for OpenAPI 3.0/3.1
- get_reader() auto-detection function
- Usage examples for each reader
2026-08-24 16:08:09 +03:00
Black_Raven 2250961d09 docs: Add example YAML files
- examples/custom.yaml: Custom YAML format example
- examples/postman.yaml: Postman Collection v2.1 example
- examples/openapi.yaml: OpenAPI 3.0 example
2026-08-24 16:03:44 +03:00
Black_Raven bf47218831 feat(yamlreaders): Added __init__.py with get_reader() helper
Exports all readers and provides get_reader() function
that auto-detects file format and returns appropriate reader
2026-08-24 16:03:42 +03:00
Black_Raven f28c1d6d7c feat(yamlreaders): Added OpenAPIReader for OpenAPI 3.0/3.1
Parses OpenAPI specifications:
- Extracts base_url from servers
- Parses paths and operations
- Generates request body from schema
- Auto-generates asserts from responses
2026-08-24 16:03:33 +03:00
Black_Raven d6b97e8b09 feat(yamlreaders): Added PostmanReader for Postman Collection v2.1
Parses Postman collections:
- Extracts variables and base_url
- Parses nested items and folders
- Converts request body and headers
- Extracts test scripts for variable extraction
2026-08-24 16:03:32 +03:00
Black_Raven 0f7dd83b33 feat(yamlreaders): Added YamlReader for custom YAML format
Parses custom YAML test specifications:
- Steps with requests
- Extract variables from responses
- Assert response status and fields
2026-08-24 16:03:14 +03:00
Black_Raven 37053a5d8e feat(yamlreaders): Added BaseReader abstract class
Base class for all parsers with:
- validate(): checks if source file is valid
- parse(): converts source to TestModel
- load_yaml(): loads YAML file
2026-08-24 16:03:13 +03:00
Black_Raven b16e3aa89a refactor: Remove unused main block from app.py 2026-08-24 15:53:19 +03:00
Black_Raven 2ce741739b fix: Updated dependencies.txt
Added httpx for HTTP client support
2026-08-24 15:48:00 +03:00
Black_Raven 116651cdb0 fix: Fixed app.py
- Replaced NULL with None
- Added proper error handling with typer.BadParameter
- Added if __name__ == '__main__' block
2026-08-24 15:48:00 +03:00
Black_Raven ab71c20012 docs: Add README.md
Documentation with class descriptions, fields, and usage examples
2026-08-24 15:47:53 +03:00
Black_Raven 3fc30f3539 feat(models): Added __init__.py
Exports all model classes for easy importing
2026-08-24 15:47:52 +03:00
Black_Raven c63f05478a feat(models): Added TestRunner class
TestRunner orchestrates test execution:
- Executor: sends HTTP requests
- Extractor: extracts data from responses
- Validator: checks assertions
- Returns TestResult with pass/fail status
2026-08-24 15:47:47 +03:00
Black_Raven b5ae8a1a46 feat(models): Added Validator class
Validator checks response assertions:
- Supports status code validation
- Supports JSON field validation
- Returns True if all assertions pass
2026-08-24 15:47:46 +03:00
Black_Raven 144d749678 feat(models): Added Extractor class
Extractor extracts data from responses:
- Supports JSON path extraction
- Supports header and status extraction
- Saves extracted values to Context
2026-08-24 15:47:40 +03:00
Black_Raven dd7f07b2d0 feat(models): Added Executor class
Executor performs HTTP requests:
- Uses httpx for HTTP calls
- Resolves {{variable}} in URLs
- Returns Response with status, body, headers
2026-08-24 15:47:40 +03:00
Black_Raven adb9ed31c1 feat(models): Added Context class
Context stores execution state:
- variables: static test variables
- extracted: data extracted from responses
- resolve(): replaces {{var}} placeholders with values
2026-08-24 15:47:32 +03:00
Black_Raven 614cfa8549 fix(models): Add missing imports and AuthModel to itm.py
Added pydantic BaseModel import, typing Any, and AuthModel class
for authentication support
2026-08-24 15:47:27 +03:00
Black_Raven 3b39701453 docs: Add AIProjectCard.md
Project specification with architecture, phases, and MVP requirements
2026-08-24 15:47:14 +03:00
Black_Raven 92bcb4c5f0 chore: Add .gitignore
Standard Python .gitignore with IDE and build artifacts
2026-08-24 15:47:13 +03:00
Black_Raven c0af7f5bf3 feat(models): Added AssertModel
AsserrtModel needs for checking answer
class AssertModel:
    type: str            # What to check: "status" / "json" / "header"
    path: str            # Where to look: "$.user.id"
    operator: str        # How to check: "equals" / "exists" / "gt"
    value: Any           # What to check against: 200 / true
2026-08-24 15:35:47 +03:00
Black_Raven 2784e3f156 feat(models): Added ExtractModel
ExtractModel helps to extract data from the server response
class ExtractModel:
    name: str            # Name of data
    json_path: str       # Name of field in data
    source: str          # Source of data
2026-08-24 15:30:51 +03:00
Black_Raven bfd6c6d961 feat(models): Added RequestModel
RequestModel consists of http response data
class RequestModel:
    method: str     # http method
    path: str       # url path
    headers: dict   # type of info to send
    body: dict      # request body data
    timeout: int    # timeout
2026-08-24 15:26:32 +03:00
Black_Raven 8e68fb9008 feat(models): Add StepModel
StepModel is model for 1 step in all test.
class StepModel:
    name: str                    # Step name
    request: RequestModel        # What to send
    extract: list[ExtractModel]  # What to extract from the response
    assert: list[AssertModel]    # What to verify
2026-08-24 15:24:31 +03:00
Black_Raven 92fbe4443d feat(models): Added TestModel
TestModel is a test structure
class TestModel:
    name: str                    # Test name
    base_url: str                # App URL
    variables: dict              # Variables for test steps
    auth: AuthModel | None       # How to authenticate
    steps: list[StepModel]       # Test steps
2026-08-24 15:19:37 +03:00
Black_Raven 4b18035fd5 first commit 2026-08-18 10:26:47 +03:00