Added pydantic BaseModel import, typing Any, and AuthModel class for authentication support
46 lines
924 B
Python
46 lines
924 B
Python
from pydantic import BaseModel
|
|
from typing import Any
|
|
|
|
|
|
class AuthModel(BaseModel):
|
|
type: str = "none"
|
|
credentials: dict[str, str] = {}
|
|
|
|
|
|
class RequestModel(BaseModel):
|
|
method: str = "GET"
|
|
path: str = "/"
|
|
headers: dict[str, str] = {}
|
|
query: dict[str, str] = {}
|
|
body: dict[str, Any] | str | None = None
|
|
body_type: str = "json"
|
|
timeout: int = 30
|
|
|
|
|
|
class ExtractModel(BaseModel):
|
|
name: str
|
|
json_path: str
|
|
source: str = "body"
|
|
|
|
|
|
class AssertModel(BaseModel):
|
|
type: str
|
|
path: str | None = None
|
|
operator: str = "equals"
|
|
value: Any = None
|
|
|
|
|
|
class StepModel(BaseModel):
|
|
name: str
|
|
request: RequestModel
|
|
extract: list[ExtractModel] = []
|
|
assert_: list[AssertModel] = []
|
|
|
|
|
|
class TestModel(BaseModel):
|
|
name: str = "Unnamed Test"
|
|
base_url: str = ""
|
|
variables: dict[str, str] = {}
|
|
auth: AuthModel | None = None
|
|
steps: list[StepModel] = []
|