Skip to content

Conversation

@vdusek
Copy link
Contributor

@vdusek vdusek commented Feb 11, 2026

Summary

  • Moved Actor-based tests (which build and deploy Actors on the Apify platform) from tests/integration/actor/ to tests/e2e/
  • Flattened tests/integration/apify_api/ into tests/integration/ (removed unnecessary nesting)
  • Created dedicated tests/e2e/conftest.py merging fixtures from tests/integration/conftest.py and the old tests/integration/actor/conftest.py
  • Added e2e-tests and e2e-tests-cov poe tasks in pyproject.toml
  • Added e2e_tests CI job in .github/workflows/_tests.yaml
  • Updated READMEs for both test directories
  • Added ruff lint exception for e2e tests (matching integration tests config)

This gives a clearer separation:

  • Integration tests (tests/integration/): Make real API calls but run locally, no Actor builds needed
  • E2E tests (tests/e2e/): Build and deploy Actors on the Apify platform

Test collection: 77 integration + 64 e2e = 141 total (unchanged).

Relates: #785

Test plan

  • uv run poe lint — passes
  • uv run poe unit-tests — 249 tests pass
  • uv run pytest --collect-only tests/integration — 77 tests collected
  • uv run pytest --collect-only tests/e2e — 64 tests collected
  • CI integration tests pass
  • CI e2e tests pass

🤖 Generated with Claude Code

Move Actor-based tests (which build and deploy Actors on the Apify platform)
from tests/integration/actor/ to tests/e2e/, and flatten
tests/integration/apify_api/ into tests/integration/.

This gives a clearer separation: integration tests make real API calls but
run locally, while e2e tests require building/deploying Actors on the platform.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions github-actions bot added this to the 134th sprint - Tooling team milestone Feb 11, 2026
@github-actions github-actions bot added t-tooling Issues with this label are in the ownership of the tooling team. tested Temporary label used only programatically for some analytics. labels Feb 11, 2026
@codecov
Copy link

codecov bot commented Feb 11, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.78%. Comparing base (cf36cc2) to head (994e970).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #781      +/-   ##
==========================================
- Coverage   81.86%   81.78%   -0.08%     
==========================================
  Files          46       46              
  Lines        2696     2696              
==========================================
- Hits         2207     2205       -2     
- Misses        489      491       +2     
Flag Coverage Δ
e2e 43.50% <ø> (?)
integration 55.45% <ø> (-0.49%) ⬇️
unit 67.95% <ø> (-0.08%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

All three test directories (unit, integration, e2e) now have READMEs
with a consistent structure: description, running instructions, and
key fixtures.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@vdusek vdusek marked this pull request as draft February 11, 2026 12:08
@vdusek vdusek changed the title refactor: split integration tests into integration and e2e suites test: split integration tests into integration and e2e suites Feb 11, 2026
@vdusek vdusek added the adhoc Ad-hoc unplanned task added during the sprint. label Feb 11, 2026
vdusek and others added 2 commits February 11, 2026 13:13
The reusable workflow `python_integration_tests.yaml` enforces
`concurrency: integration_tests` and `max-parallel: 1`, which meant
only one test matrix job could run at a time across both integration
and e2e suites.

Inline the job definitions to remove both limitations. All matrix
combinations now run in parallel.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
E2E tests build and run Actors on the Apify platform, which can exceed
the account memory limit when multiple matrix jobs run concurrently.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@vdusek vdusek marked this pull request as ready for review February 11, 2026 12:41
@Pijukatel
Copy link
Contributor

What problem does this actually solve?

@janbuchar
Copy link
Contributor

What problem does this actually solve?

https://apify.slack.com/archives/C06ENBV1B9Q/p1770812487540959


if: >-
${{
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.owner.login == 'apify') ||
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What problem does the owner check solve? Tests don't run in forks, do they?

Copy link
Contributor Author

@vdusek vdusek Feb 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They don't, thanks to this condition (they are skipped). Otherwise, they would be executed, and they would fail.

name: Integration tests (${{ matrix.python-version }}, ${{ matrix.os }})

if: >-
${{
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think these braces are necessary in this context, but I may be wrong.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is copied from the apify/workflows, and we know it works, so I would probably stay with that 🙂.

@vdusek vdusek merged commit a814c63 into master Feb 12, 2026
31 checks passed
@vdusek vdusek deleted the refactor/split-integration-e2e-tests branch February 12, 2026 10:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

adhoc Ad-hoc unplanned task added during the sprint. t-tooling Issues with this label are in the ownership of the tooling team. tested Temporary label used only programatically for some analytics.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants