Skip to content

Adding realworld test dataset - #2409

Merged
s3inlc merged 8 commits into
masterfrom
real-data-testing
Aug 6, 2026
Merged

Adding realworld test dataset#2409
s3inlc merged 8 commits into
masterfrom
real-data-testing

Conversation

@s3inlc

@s3inlc s3inlc commented Aug 4, 2026

Copy link
Copy Markdown
Member

This adds two database testsets which are prefilled with some data for most of the tables. This allows more complex tests to be done without having to fill in a lot of test data (especially for GET queries).

There are three kind of tests then:

  • synthetic only: only tested starting with an empty database and then filled with what is needed during the test
  • realworld only: only tested with the pre-populated databases, testing some specifics only possible with some larger pre-filled data
  • both: most of the simpler tests can be executed with both, also then making sure that they work with data existing and empty data as well

@s3inlc
s3inlc marked this pull request as ready for review August 5, 2026 18:05
@s3inlc
s3inlc requested a lite review from Copilot August 5, 2026 18:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR introduces a “realworld” pre-populated database dataset for CI and adds smoke/pagination tests that validate API behavior against that larger, realistic data shape. It also wires dataset selection into pytest so tests can be run against either an empty (synthetic) DB or the realworld dump.

Changes:

  • Add a realworld pytest marker + --test-dataset switch to selectively run/skip tests depending on dataset.
  • Add realworld smoke tests validating known counts, relationships, and pagination behavior on large tables.
  • Extend CI and the start action to import DB dumps and run the test suite against both MySQL and Postgres realworld datasets.

Reviewed changes

Copilot reviewed 8 out of 10 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
ci/testdata/config.json Adds dataset-specific config (PEPPER) intended to match the dump.
ci/apiv2/test_realworld_dump.py New realworld-only smoke/pagination tests against the dump dataset.
ci/apiv2/test_permissions.py Marks a test as synthetic-only to avoid running it on prefilled DB.
ci/apiv2/test_file.py Marks a test as synthetic-only to avoid running it on prefilled DB.
ci/apiv2/conftest.py Adds --test-dataset option + marker-based skipping logic.
.github/workflows/ci.yml Adds a new realworld CI job for MySQL/Postgres.
.github/scripts/import-testdata-dump.sh New script to install config + import MySQL/Postgres dumps.
.github/actions/start-hashtopolis/action.yml Adds test_dataset input and realworld import/start sequence.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread ci/testdata/config.json
Comment thread .github/workflows/ci.yml
@s3inlc
s3inlc requested a review from jessevz August 5, 2026 18:30
@s3inlc
s3inlc merged commit 32b39c0 into master Aug 6, 2026
22 checks passed
@s3inlc
s3inlc deleted the real-data-testing branch August 6, 2026 20:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants