Skip to content
Open
Show file tree
Hide file tree
Changes from 165 commits
Commits
Show all changes
171 commits
Select commit Hold shift + click to select a range
02927c7
feat(pipelines): Add detailed proposal for scriptable pipelines using…
michaelboulton Mar 28, 2026
15a5ad4
feat(docs): Expand `scriptable-pipelines.md` with detailed implementa…
michaelboulton Mar 28, 2026
3713963
feat(dependencies): Add `starlark-pyo3` package to dependencies
michaelboulton Mar 28, 2026
0a0ce60
feat(starlark): Introduce experimental Starlark pipeline support
michaelboulton Mar 28, 2026
aa85c2d
refactor(pytest): Move `--experimental-starlark-pipeline` flag defini…
michaelboulton Mar 28, 2026
af4bc0a
refactor(starlark): Refactor `load_and_run` logic and enhance session…
michaelboulton Mar 28, 2026
b3c2874
feat(integration): Add Starlark pipeline integration tests and update…
michaelboulton Mar 28, 2026
6243c27
feat(starlark): Introduce `PipelineContext` and enhance pipeline exec…
michaelboulton Mar 28, 2026
b598d3a
format
michaelboulton Mar 28, 2026
581f085
refactor(starlark): Remove unused pytest hook and refine exception ha…
michaelboulton Mar 28, 2026
c200ad6
refactor(starlark_env): simplify raised error messages
michaelboulton Mar 28, 2026
cc70f9e
chore(pre-commit): Update pre-commit hooks to latest versions
michaelboulton Mar 28, 2026
5c72bf5
refactor(cli): Rename Starlark pipeline experimental flag for consist…
michaelboulton Mar 28, 2026
28e5cf6
update hooks etc.
michaelboulton Mar 28, 2026
319ff8b
refactor(starlark): Switch to extended dialect and implement item col…
michaelboulton Mar 28, 2026
f9f2e0d
refactor(pyproject): Update pytest configuration section to align wit…
michaelboulton Mar 28, 2026
e1a3ac5
refactor(pytest_plugin): Remove redundant debug logging for Starlark …
michaelboulton Mar 28, 2026
a99e992
refactor(pytest): Consolidate test item classes and optimize fixture …
michaelboulton Mar 28, 2026
3577a03
refactor(starlark_env): Remove redundant setup methods for built-in f…
michaelboulton Mar 29, 2026
adbee81
2Clean
michaelboulton Mar 29, 2026
21f08f2
Move
michaelboulton Mar 29, 2026
63be809
refactor(loader): Refactor include directory retrieval and usage in l…
michaelboulton Mar 29, 2026
7190cbb
fix constructing node
michaelboulton Mar 29, 2026
dce7729
fix(starlark_env): Ensure correct file path resolution and logging fo…
michaelboulton Mar 29, 2026
1d55685
refactor(starlark): Remove `setup_starlark_environment` and simplify …
michaelboulton Mar 29, 2026
58c8646
refactor(starlark): Pass `global_cfg` to starlark pipeline and remove…
michaelboulton Mar 29, 2026
b4fe6c8
refactor(starlark): Add `to_starlark` and `from_starlark` methods for…
michaelboulton Mar 29, 2026
142b7e8
refactor
michaelboulton Mar 30, 2026
12b881d
refactor(starlark): Update type annotations and simplify context crea…
michaelboulton Mar 30, 2026
f3fce67
simplify
michaelboulton Mar 30, 2026
48ea282
refactor(starlark_env): Remove unused `failure` attribute from `Stage…
michaelboulton Mar 30, 2026
417678f
fix(plugins): Handle missing session settings when initializing reque…
michaelboulton Mar 30, 2026
9976182
feat(starlark): Add utility functions for Starlark object conversion …
michaelboulton Mar 30, 2026
b3335b8
feat(starlark): Convert `path` to string in `StarlarkPipelineRunner` …
michaelboulton Mar 30, 2026
034bc27
refactor(starlark): Simplify context handling and update `run_stage` …
michaelboulton Mar 30, 2026
028b5d8
fix serialisation
michaelboulton Mar 30, 2026
467dad6
feat(starlark): Add `StarlarkConvertible` protocol and enhance data s…
michaelboulton Mar 30, 2026
f309eef
feat(starlark): Add `StarlarkConvertible` protocol and enhance data s…
michaelboulton Mar 30, 2026
5302a7a
feat(starlark_env): Enhance global environment and improve `test_conf…
michaelboulton Mar 30, 2026
23f73cf
refactor(starlark_env): Remove excessive logging and improve result h…
michaelboulton Mar 30, 2026
c33a231
docs: changes that need to be made
michaelboulton Apr 3, 2026
e9fd52a
fix getting resp success
michaelboulton Apr 3, 2026
2c27bf4
refactor(pytest_plugin): Remove Starlark pytest plugin and related en…
michaelboulton Apr 3, 2026
c19b40f
docs(starlark): Add implementation details and progress update for St…
michaelboulton Apr 3, 2026
ab9ac5b
feat(starlark): Add control flow scripting and stage management enhan…
michaelboulton Apr 3, 2026
702fb2a
feat(starlark): Add control flow scripting and stage management enhan…
michaelboulton Apr 3, 2026
cb10f2a
test(starlark): Add unit tests for `StageResponse` and `StageRegistry`
michaelboulton Apr 3, 2026
4ef50bf
fix(starlark): A few random fixes
michaelboulton Apr 3, 2026
0f5f0d1
feat(starlark): Refactor and enhance control flow execution in tests
michaelboulton Apr 3, 2026
6ee2ed2
feat(starlark_env): Refactor stage execution and enhance error handling
michaelboulton Apr 3, 2026
d6d8d31
refactor(starlark_env): Simplify `StarlarkPipelineRunner` and remove …
michaelboulton Apr 3, 2026
66275da
feat(starlark_env): Add support for loading modules in control flow s…
michaelboulton Apr 3, 2026
d15015b
fix hostname
michaelboulton Apr 3, 2026
a2b9289
fix(starlark_env): Improve error handling and clean up unused code
michaelboulton Apr 3, 2026
3e95b6a
feat(starlark_env): Enhance error handling and introduce `MultiContex…
michaelboulton Apr 3, 2026
d248017
refactor(pyproject): Remove pytest `no:logging` plugin configuration
michaelboulton Apr 3, 2026
f531a11
fix(starlark_env): Update error handling for `load_and_run` evaluatio…
michaelboulton Apr 3, 2026
378d11b
fix(tox): Update test environment to use `uv` instead of `pre-commit`
michaelboulton Apr 3, 2026
2148317
fix(starlark_env): Improve error handling and propagate stage context…
michaelboulton Apr 3, 2026
833f76d
fix(starlark_env): Handle non-JSON responses in stage executions
michaelboulton Apr 3, 2026
b302c96
feat(core): support tests with only included stages and no explicit s…
michaelboulton Apr 3, 2026
6fb2470
feat(run): update session handling to support forced plugin loading f…
michaelboulton Apr 3, 2026
65698dd
fix host
michaelboulton Apr 3, 2026
5bfe3da
Remove script
michaelboulton Apr 3, 2026
8aa5055
fix(starlark_env): Improve error message for missing stage ID
michaelboulton Apr 3, 2026
d6be9bb
fix(run): pass combined stage lists to `_run_with_starlark_control_flow`
michaelboulton Apr 3, 2026
b27a6f5
refactor(starlark): improve error handling to surface original Python…
michaelboulton Apr 3, 2026
4254128
docs(starlark_env): expand docstring for `_setup_builtins` to clarify…
michaelboulton Apr 3, 2026
1f2397d
feat(starlark_env): add support for passing `extra_vars` to `run_stage`
michaelboulton Apr 3, 2026
6134942
test: add tst fuctions
michaelboulton Apr 3, 2026
0e16983
test: add tst fuctions
michaelboulton Apr 3, 2026
6fe4067
fix tests
michaelboulton Apr 3, 2026
88915ee
test(unittests): consolidate and refactor test fixtures for starlark
michaelboulton Apr 3, 2026
c478a94
test(starlark_env): add test for `_wrap_callable` handling opaque ret…
michaelboulton Apr 3, 2026
ef715a2
test(mqtt): reduce timeout values and simplify test mock logic
michaelboulton Apr 3, 2026
4b031ad
clean tess
michaelboulton Apr 4, 2026
614bd61
test(starlark_env): remove redundant test cases and consolidate test …
michaelboulton Apr 4, 2026
2b88442
test(starlark_env): improve validation of `extra_vars` in stage config
michaelboulton Apr 4, 2026
b32010f
refactor(tests): remove `mock_tinctures` fixture and inline `Tincture…
michaelboulton Apr 4, 2026
3fcb48b
test(starlark_env): remove `TestStarlarkPipelineRunnerInit` class and…
michaelboulton Apr 4, 2026
d0d9f98
refactor(starlark_env): remove unused `include` function definition
michaelboulton Apr 4, 2026
bde7893
fix(pytest/error): handle missing global variables gracefully in erro…
michaelboulton Apr 4, 2026
9a56c6a
test(regex): add unit and integration tests for regex functions in St…
michaelboulton Apr 4, 2026
bf51e21
test(starlark): remove unnecessary failure checks in control flow tests
michaelboulton Apr 4, 2026
a6e7fec
cleanup
michaelboulton Apr 4, 2026
b5d0d04
test(starlark): add polling test with retry logic to control flow tests
michaelboulton Apr 4, 2026
36b6fb6
fix(starlark_env): update error messages for consistency in exception…
michaelboulton Apr 4, 2026
c82a3e3
feat(starlark_env): add `re.search` support and improve regex handling
michaelboulton Apr 4, 2026
3b0207d
refactor(tests): use re.search instead
michaelboulton Apr 4, 2026
9966af5
feat(docs): add documentation for Starlark scripting with Tavern
michaelboulton Apr 4, 2026
7f5c412
feat(docs): expand `scripting.md` with use cases and future improvements
michaelboulton Apr 4, 2026
238556b
docs
michaelboulton Apr 4, 2026
a3eae55
feat(starlark): add support for including `.star` scripts and enhance…
michaelboulton Apr 4, 2026
179cafd
feat(starlark): enforce stage execution and improve script handling
michaelboulton Apr 4, 2026
0d5097c
revert changes to item.py
michaelboulton Apr 4, 2026
59bb87d
remove old exception
michaelboulton Apr 4, 2026
37cf828
docs(tests): update test file reference in README
michaelboulton Apr 4, 2026
ceb3c65
refactor(starlark): remove unused `has_stage` method and related test
michaelboulton Apr 4, 2026
f32e7a1
Delete old file
michaelboulton Apr 4, 2026
70c3326
feat(starlark): make starlark optional
michaelboulton Apr 4, 2026
9a0ee7e
update tox integration to run starlark
michaelboulton Apr 4, 2026
62951bf
fix tox files with extras
michaelboulton Apr 4, 2026
0fa0fd1
ci(workflows): prevent matrix jobs from failing fast
michaelboulton Apr 4, 2026
de30a2d
Bump to 3.2.1a1
michaelboulton Apr 4, 2026
383edf7
ci: Drop Python 3.11 from CI workflows
michaelboulton Apr 4, 2026
7fac86a
Merge remote-tracking branch 'origin/master' into feat/scriptable-pip…
michaelboulton Apr 5, 2026
cb849b0
Bump to 3.4.0a1
michaelboulton Apr 5, 2026
8a44a19
Fix tag
michaelboulton Apr 5, 2026
3e48d70
refactor(types): remove unreachable OpaquePythonObject conversion
michaelboulton Apr 5, 2026
c1cf3c2
test: Rename mock_test_config fixture to fix_test_config
michaelboulton Apr 5, 2026
744aa95
test(regex): Remove redundant `TestReModuleStruct` test class
michaelboulton Apr 5, 2026
f74c2aa
docs(stage_registry): Add class docstring to `StageRegistry`
michaelboulton Apr 5, 2026
4a1b152
fix(run): Ensure meaningful exception is raised for invalid Starlark …
michaelboulton Apr 5, 2026
0c408a4
comment
michaelboulton Apr 5, 2026
48ff10c
docs: add note about how it shouldnt be used too much
michaelboulton Apr 5, 2026
869d41e
docs: add TODO
michaelboulton Apr 5, 2026
994025c
docs: Add note about 'failed'
michaelboulton Apr 5, 2026
625589d
add intellij language tag
michaelboulton Apr 5, 2026
c7d97d0
docs: add note about loading
michaelboulton Apr 5, 2026
a6d55bc
fix(starlark_env): Update imports and exceptions handling for consist…
michaelboulton Apr 5, 2026
6672995
test(starlark_env): Remove redundant comment blocks in `test_starlark…
michaelboulton Apr 5, 2026
f002955
test(starlark_env): Remove unused `test_run_stage_binding_with_reques…
michaelboulton Apr 5, 2026
9e7da4a
refactor(tests): replace nested patch context managers with single wi…
michaelboulton Apr 5, 2026
bd4c8e2
feat(starlark): expose time.sleep to Starlark scripts
michaelboulton Apr 5, 2026
0a84eed
feat(docs): update scripting documentation to include time.sleep usage
michaelboulton Apr 5, 2026
a4b4bf7
docs(scripting): update TODO section with auto-export functions and u…
michaelboulton Apr 5, 2026
8357d8b
docs(scripting): improve polling control flow example
michaelboulton Apr 5, 2026
5e3af3f
docs: fix typos
michaelboulton Apr 5, 2026
6505425
fix(config): correctly convert Starlark types in TestConfig.from_star…
michaelboulton Apr 5, 2026
d5744e9
fix(run): ensure safe removal of keys from test_block_config variables
michaelboulton Apr 5, 2026
acb0085
docs: clarify instructions for running tests
michaelboulton Apr 5, 2026
0ab0d1f
fix typo
michaelboulton Apr 5, 2026
ce9f1da
fix: remove pointless log
michaelboulton Apr 5, 2026
cfc2853
fix(stage_registry): prevent duplicate stage definitions
michaelboulton Apr 5, 2026
4796ab5
fix(starlark_env): use deep copy for stage to prevent nested dict mut…
michaelboulton Apr 5, 2026
cfa99e5
fix(starlark_env): ensure correct handling of bytes input in `re_sub`
michaelboulton Apr 5, 2026
80c2c92
fix example
michaelboulton Apr 5, 2026
4a4796a
fix(test_starlark_env): add assertion to verify `json()` call on mock…
michaelboulton Apr 5, 2026
8b412e1
fix(starlark_env): handle JSON parsing fallback in response body cons…
michaelboulton Apr 5, 2026
e3bb954
fix: remove assertion which can never be true
michaelboulton Apr 5, 2026
6e6d93e
fix: minor error string fix
michaelboulton Apr 5, 2026
64ed853
fix(test_stage_registry): update test to reflect behavior for nonexis…
michaelboulton Apr 5, 2026
e821466
fix check
michaelboulton Apr 5, 2026
7aeb2a1
fix(pyproject): add `.hypothesis` to excludes list
michaelboulton Apr 5, 2026
b8b87f0
fix(starlark): use experimental flag to enable starlark control flow …
michaelboulton Apr 5, 2026
60d2be1
fix: update python version from 3.11 to 3.12 in configuration and scr…
michaelboulton Apr 6, 2026
0dfd722
update lock
michaelboulton Apr 6, 2026
2bbfec3
feat(starlark): externalize starlark builtins to separate file
michaelboulton Apr 6, 2026
ee92345
test(control_flow): add unit tests for experimental flag requirement
michaelboulton Apr 6, 2026
d642d08
feat(docs): add scripting API documentation for Starlark
michaelboulton Apr 6, 2026
536b97b
chore(docs): remove deprecated function list from tavern_helpers.star…
michaelboulton Apr 6, 2026
64d4cb4
docs(scripting): add reference to scripting API docs
michaelboulton Apr 6, 2026
565cf04
feat(.pre-commit-config.yaml): add repos section with multiple reposi…
michaelboulton Apr 6, 2026
754318d
Fix import
michaelboulton Apr 6, 2026
bdf2f66
docs(files): clarify return value structure in file handling docstring
michaelboulton Apr 6, 2026
60edd67
feat(files, request): enhance file handling and improve docstring cla…
michaelboulton Apr 6, 2026
7161495
fix(pytest/file): prevent NoneType keys in kwargs dictionary
michaelboulton Apr 6, 2026
60bc46a
chore(dev): update ruff dependency constraint
michaelboulton Apr 6, 2026
856bf7b
Autoformat with new version of ruff
michaelboulton Apr 6, 2026
5d0ee74
chore(pyproject): update Python version support and dependencies
michaelboulton Apr 6, 2026
639167c
<type>[tavern/_core]: Update dict util and pytest util modules
michaelboulton Apr 6, 2026
a443ffd
fix tests
michaelboulton Apr 6, 2026
920de94
chore(workflows): update uv setup action to latest version
michaelboulton Apr 6, 2026
a2ef24a
fix(starlark_env): ensure stage objects are converted to Starlark-com…
michaelboulton May 2, 2026
9dd08a3
feat(server, tests): add CRUD endpoints for entities with integration…
michaelboulton May 2, 2026
47205e5
feat(starlark/types): replace placeholder implementations with NotImp…
michaelboulton May 10, 2026
156b110
refactor(starlark_env): streamline imports and improve exception hand…
michaelboulton May 10, 2026
421ebe7
Merge remote-tracking branch 'origin/master' into feat/scriptable-pip…
michaelboulton Jul 24, 2026
09b482e
Delete checked-in file
michaelboulton Jul 25, 2026
bd012ea
Delete old AGENTS files
michaelboulton Jul 25, 2026
dead4f6
docs: Update outdated documentation for experimental starlark pipelin…
michaelboulton Jul 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,10 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"
python-version: "3.12"

- name: Install the latest version of uv
uses: astral-sh/setup-uv@v7

- uses: pre-commit/action@v3.0.0

Expand All @@ -38,8 +41,9 @@ jobs:
TOXCFG: tox.ini

strategy:
fail-fast: false
matrix:
python-version: ["3.11", "3.12", "3.13", "3.14"]
python-version: ["3.12", "3.13", "3.14"]

steps:
- uses: actions/checkout@v6
Expand Down Expand Up @@ -118,7 +122,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"
python-version: "3.12"

- name: Install the latest version of uv
uses: astral-sh/setup-uv@v7
Expand Down Expand Up @@ -149,10 +153,10 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"
python-version: "3.12"

- name: Install the latest version of uv
uses: astral-sh/setup-uv@v6
uses: astral-sh/setup-uv@v7

- name: Run tests
env:
Expand Down
22 changes: 18 additions & 4 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
repos:
- repo: https://github.com/rhysd/actionlint
rev: v1.7.9
rev: v1.7.12
hooks:
- id: actionlint
args: ["-shellcheck="]
- repo: https://github.com/charliermarsh/ruff-pre-commit
rev: v0.14.7
rev: v0.15.9
hooks:
- id: ruff-format
- id: ruff-check
Expand All @@ -16,7 +16,7 @@ repos:
- id: prettier
types_or: [yaml]
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.19.0
rev: v1.20.0
hooks:
- id: mypy
additional_dependencies:
Expand All @@ -27,8 +27,22 @@ repos:
exclude: tests
- repo: https://github.com/astral-sh/uv-pre-commit
# uv version.
rev: 0.9.13
rev: 0.11.3
hooks:
- id: uv-lock
- repo: local
hooks:
- id: starlark-docstring-markdown
name: starlark-docstring-markdown
entry: uv
args:
- tool
- run
- git+https://github.com/michaelboulton/starlark-docstring-markdown@df06acc9307e9ad8bd83fe618f012072f288d3d1
- tavern/tavern/_core/starlark/
- tavern/docs/source/scripting-api.md
language: system
pass_filenames: false
files: \.star$

exclude: (docs/|example/)
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Changelog

## 3.3.2 allow 'text' response checking with raw include tag for files (2026-04-05)

## 3.3.1 pydantic helper function (2026-04-05)

# 3.3.0 generic backends (2026-04-04)
Expand Down
200 changes: 200 additions & 0 deletions docs/source/scripting-api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,200 @@
# Modules

## Table of Contents

- 🅼 [starlark\.tavern\_helpers](#starlark-tavern_helpers)

<a name="starlark-tavern_helpers"></a>
## 🅼 starlark\.tavern\_helpers

Tavern helper functions for Starlark scripts\.

This module provides built-in functions for controlling test execution
in Tavern's Starlark pipeline feature\.

Usage:
load\("@tavern\_helpers\.star", "run\_stage", "re", "time", "log"\)

- **Functions:**
- 🅵 [run\_stage](#starlark-tavern_helpers-run_stage)
- **Structs:**
- 🆂 [re](#starlark-tavern_helpers-re)
- 🆂 [time](#starlark-tavern_helpers-time)

### Functions

<a name="starlark-tavern_helpers-run_stage"></a>
### 🅵 starlark\.tavern\_helpers\.run\_stage

```python
def run_stage(name, continue_on_fail = False, extra_vars = None):
```

Execute a test stage by its ID and return the response\.

**Parameters:**

- **name**: Stage ID to execute \(must have 'id' key in YAML\)
- **continue_on_fail**: If True, return failed response instead of raising
an exception\. Default: False
- **extra_vars**: Optional dict of variables to merge into stage config

**Returns:**

- `A struct with properties`: - failed \(bool\): True if stage failed
- success \(bool\): True if stage succeeded
- request\_vars: Variables captured during request execution
- stage\_name: Name of the executed stage

For HTTP responses, also includes:
- body: Response body \(parsed JSON if Content-Type is application/json\)
- status\_code: HTTP status code
- headers: Response headers
- cookies: Response cookies

**Examples:**

```python
# Run a stage by ID
resp = run_stage("get_cookie")
if resp.failed:
fail("Stage failed")

# Continue on failure
resp = run_stage("try_login", continue_on_fail=True)
if resp.failed:
log("Login failed, using fallback")
run_stage("fallback_login")
```

### Structs

<a name="re"></a>
### 🆂 re

Regex utilities for pattern matching and text manipulation\.

Provides Python regex-style operations for use in Starlark scripts\.

Available methods:
match\(pattern, string\): Match pattern at start of string
search\(pattern, string\): Search for pattern anywhere in string
sub\(pattern, repl, string\): Replace all pattern occurrences

**Examples:**

```python
load("@tavern_helpers.star", "re")

resp = run_stage("get_data")

# Extract version number
match = re.search("v(\d+)\.", resp.body)
if match == None:
fail("Version not found")
version = match.groups[0]

# Replace values
new_url = re.sub("OLD", "NEW", original_url)
```

**Methods:**

<a name="starlark-tavern_helpers-re-match"></a>
#### 🅵 starlark\.tavern\_helpers\.re\.match

```python
def match(pattern, s):
```

Match a regex pattern at the beginning of string\.

**Parameters:**

- **pattern**: Regular expression pattern
- **s**: String to match against

**Returns:**

- `A struct with match details, or None if no match`: - group0: Full match \(group 0\)
- groups: List of captured groups
- start: Start position of match
- end: End position of match
<a name="starlark-tavern_helpers-re-search"></a>
#### 🅵 starlark\.tavern\_helpers\.re\.search

```python
def search(pattern, s):
```

Search for a regex pattern anywhere in string\.

**Parameters:**

- **pattern**: Regular expression pattern
- **s**: String to search in

**Returns:**

- `A struct with match details, or None if no match`: - group0: Full match \(group 0\)
- groups: List of captured groups
- start: Start position of match
- end: End position of match
<a name="starlark-tavern_helpers-re-sub"></a>
#### 🅵 starlark\.tavern\_helpers\.re\.sub

```python
def sub(pattern, repl, s):
```

Substitute occurrences of pattern in string\.

**Parameters:**

- **pattern**: Regular expression pattern
- **repl**: Replacement string
- **s**: String to process

**Returns:**

- String with all occurrences replaced
<a name="time"></a>
### 🆂 time

Time utilities for delays and timing operations\.

Available methods:
sleep\(seconds\): Pause execution for given seconds

**Examples:**

```python
load("@tavern_helpers.star", "time")

for i in range(0, 3):
resp = run_stage("poll", continue_on_fail=True)
if not resp.failed:
break
time.sleep(1) # Wait 1 second before retry
```

**Methods:**

<a name="starlark-tavern_helpers-time-sleep"></a>
#### 🅵 starlark\.tavern\_helpers\.time\.sleep

```python
def sleep(seconds):
```

Sleep for specified seconds\.

**Parameters:**

- **seconds**: Number of seconds to sleep \(can be float\)

**Examples:**

```python
time.sleep(0.5) # Sleep for 500ms
```
Loading
Loading