> ## Documentation Index
> Fetch the complete documentation index at: https://docs.knowlify.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Testing and availability

> Verify the Training API update before relying on it in an integration

<Note>
  These pages describe the Training API update merged into `dev`.
  Production availability and successful end-to-end verification are not yet confirmed.
  New fields, stricter edit behavior, and website brand lookup require the updated API and worker.
  See [Testing and availability](/api-reference/testing).
</Note>

## Availability

This reference targets the Training API changes merged into backend `dev` at commit `98d9746b362e216aec324da73923568fc8224d55`. The changes require the **API service and worker** to run the update. A branch push alone does not deploy either service.

The API service also needs `CONTEXT_DEV_API_KEY` for website brand lookup. This provider credential is separate from the Knowlify key used by clients.

Local verification passed 287 tests with 11 skipped. A live check of the earlier development deployment accepted video creation and reported completion, but its edit failed during plan approval. The updated code has not yet passed a live create → render → edit → revert run. Brand lookup was tested with mocked provider responses, not a live context.dev credential.

## Local regression tests

With Git and uv installed:

```bash theme={null}
git clone --branch codex/knowlify-training-api-updates \
  https://github.com/knowlify/planner-fastapi.git planner-fastapi-api-test
cd planner-fastapi-api-test
uv sync --frozen
uv run pytest tests/api/test_v1_*.py \
  tests/editing/test_external_edit_contract.py --timeout=90
```

These tests use isolated fixtures; they do not prove that a deployed worker renders correctly.

## Live smoke test

After deploying the updated API and worker to a test environment, store your test key in a private file outside the repository, then run from the backend checkout:

```bash theme={null}
uv run python scripts/test_training_api.py \
  --base-url https://web-dev-0acd.up.railway.app \
  --key-file /secure/path/to/test-key \
  --write \
  --report /tmp/knowlify-training-test.json
```

Replace the base URL if your deployment uses another address. The script can also read `KNOWLIFY_API_KEY` from the environment instead of `--key-file`.

The runner checks invalid input and website brand lookup, creates a short Training video, waits for confirmed rendering, submits a title edit, checks `video_synced`, and requests revert. It writes a JSON report without saving the key. Generation consumes the test account's normal resources.

Without `--write`, it only checks validation and brand lookup; the lookup still calls the external provider. The default brand domain is `stripe.com`; change it with `--brand-domain`. The default polling timeout is 900 seconds per job; change it with `--timeout`.

## Visual verification

Use the report's video identifier to find the test video in the development dashboard. For a manual run, inspect the initial render, then the edited render before reverting: the title should change while narration and timing remain unchanged. Inspect the restored result after revert. The smoke runner checks API state; it does not watch the media or wait for a rebuilt combined file after revert.
