|
| 1 | +# Advanced Percy + Selenium-Python example |
| 2 | + |
| 3 | +This directory exercises the full applicable Percy SDK feature surface for `percy-selenium` (Python). See the basic example at the repo root for the minimum integration. |
| 4 | + |
| 5 | +## What this example covers |
| 6 | + |
| 7 | +A pytest suite (`tests/test_todomvc_advanced.py`) where each test exercises one row of the [Percy SDK Advanced Feature Matrix](../../../docs/advanced-example-feature-matrix.md). Global SDK config — readiness preset, default widths, percyCSS, discovery — lives in `.percy.yml`. |
| 8 | + |
| 9 | +Note: `scope`, `domTransformation`, `regions`, `discovery` are marked `N/A` — not exposed in `percy-selenium` 2.1.2 kwargs surface. |
| 10 | + |
| 11 | +## Run locally |
| 12 | + |
| 13 | +```bash |
| 14 | +cd advanced |
| 15 | +make install # creates .venv, installs requirements.txt |
| 16 | +export PERCY_TOKEN="<your token>" # do NOT commit this |
| 17 | +make test |
| 18 | +``` |
| 19 | + |
| 20 | +To run without a real token (CI assertion mode): |
| 21 | + |
| 22 | +```bash |
| 23 | +make test-advanced-ci # uses --testing + PERCY_TOKEN=fake_token + captures /test/requests |
| 24 | +``` |
| 25 | + |
| 26 | +The CI variant asserts every matrix row appears in the captured POST bodies at the local `/test/requests` endpoint. No real Percy build is created. |
| 27 | + |
| 28 | +## Coverage matrix |
| 29 | + |
| 30 | +States: `Covered` / `N/A — <reason>` / `Planned` / `Deprecated`. Source of truth is [`matrix.yml`](./matrix.yml). |
| 31 | + |
| 32 | +| Feature | State | Test | |
| 33 | +|---|---|---| |
| 34 | +| widths | Covered | `test_exercises_widths` | |
| 35 | +| minHeight (`min_height`) | Covered | `test_exercises_min_height` | |
| 36 | +| enableJavaScript (`enable_javascript`) | Covered | `test_exercises_enable_javascript` | |
| 37 | +| responsiveSnapshotCapture (`responsive_snapshot_capture`) | Covered | `test_exercises_responsive_snapshot_capture` | |
| 38 | +| readiness preset | Covered | `test_exercises_readiness_preset` | |
| 39 | +| sync | Covered | `test_exercises_sync` | |
| 40 | +| labels | Covered | `test_exercises_labels` | |
| 41 | +| testCase (`test_case`) | Covered | `test_exercises_test_case` | |
| 42 | +| devicePixelRatio (`device_pixel_ratio`) | Covered | `test_exercises_device_pixel_ratio` | |
| 43 | +| browsers override | Covered | `test_exercises_browsers` | |
| 44 | +| snake_case + camelCase dual naming | Covered | `test_exercises_snake_case_camelcase_dual_naming` | |
| 45 | +| percyCSS | Covered | global via `.percy.yml` | |
| 46 | +| cross-origin iframe handling | Covered | automatic via `percy-selenium >= 2.1.2` | |
| 47 | +| `.percy.yml` global config | Covered | `.percy.yml` consumed at build start | |
| 48 | +| environment info reporting | Covered | automatic via `percy-selenium` client info | |
| 49 | +| PERCY_SERVER_ADDRESS via env | Covered | CI advanced job picks up `PERCY_SERVER_ADDRESS` | |
| 50 | +| `disable_shadow_dom` | Planned | — | |
| 51 | +| `enable_layout` | Planned | — | |
| 52 | +| `scope` | N/A | Not exposed in SDK 2.1.2 | |
| 53 | +| `domTransformation` | N/A | Not exposed in SDK 2.1.2 | |
| 54 | +| `regions` per-snapshot | N/A | `create_region` is Automate-only | |
| 55 | +| `discovery` per-snapshot | N/A | discovery is per-build only | |
0 commit comments