gitea/tests/integration
anthony-zh 0e6c1224e5
when using rules to delete packages, remove unclean bugs (#34632)
By default, the code extracts 200 package versions. If too many packages
are generated every day or if rule cleaning is enabled later, which
means there are more than 200 versions corresponding to the library
package, it may not be cleaned up completely, resulting in residue

Fix #31961

---------

Co-authored-by: yeyuanjie <yecao100@126.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2025-06-18 04:47:49 +07:00
..
migration-test Uniform all temporary directories and allow customizing temp path (#32352) 2025-04-08 16:15:28 +07:00
schemas
README.md
README_ZH.md
actions_delete_run_test.go Add endpoint deleting workflow run (#34337) 2025-05-13 19:18:13 +07:00
actions_job_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
actions_log_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
actions_runner_modify_test.go Use test context in tests and new loop system in benchmarks (#33648) 2025-02-20 09:57:40 +07:00
actions_runner_test.go Refactor some tests (#34580) 2025-06-03 01:26:19 +07:00
actions_trigger_test.go Keeping consistent between UI and API about combined commit status state and fix some bugs (#34562) 2025-06-09 04:05:33 +07:00
actions_variables_test.go Added Description Field for Secrets and Variables (#33526) 2025-03-17 19:24:54 +07:00
admin_config_test.go
admin_user_test.go Fix remove org user failure on mssql (#34449) 2025-05-14 02:33:56 +07:00
api_actions_artifact_test.go
api_actions_artifact_v4_test.go actions artifacts api list/download check status upload confirmed (#34273) 2025-04-28 16:31:53 +07:00
api_actions_delete_run_test.go Add endpoint deleting workflow run (#34337) 2025-05-13 19:18:13 +07:00
api_actions_runner_test.go Fix ephemeral runner deletion (#34447) 2025-05-20 15:42:31 +07:00
api_activitypub_person_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_admin_org_test.go Fix test code (#33829) 2025-03-10 21:45:42 +07:00
api_admin_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_branch_test.go Refactor Branch struct in package modules/git (#33980) 2025-04-02 17:31:32 +07:00
api_comment_attachment_test.go
api_comment_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_fork_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_gitignore_templates_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_gpg_keys_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_helper_for_declarative_test.go Run `gopls modernize` on codebase (#34751) 2025-06-18 01:48:09 +07:00
api_httpsig_test.go
api_issue_attachment_test.go
api_issue_config_test.go
api_issue_label_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_issue_lock_test.go Add API routes to lock and unlock issues (#34165) 2025-04-21 00:43:43 +07:00
api_issue_milestone_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_issue_pin_test.go
api_issue_reaction_test.go
api_issue_stopwatch_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_issue_subscription_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_issue_templates_test.go
api_issue_test.go Run `gopls modernize` on codebase (#34751) 2025-06-18 01:48:09 +07:00
api_issue_tracked_time_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_keys_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_label_templates_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_license_templates_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_nodeinfo_test.go Fix test code (#33829) 2025-03-10 21:45:42 +07:00
api_notification_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_oauth2_apps_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_org_avatar_test.go
api_org_test.go Allow admins and org owners to change org member public status (#28294) 2025-04-13 08:07:29 +07:00
api_packages_alpine_test.go
api_packages_arch_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_packages_cargo_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_packages_chef_test.go Run `gopls modernize` on codebase (#34751) 2025-06-18 01:48:09 +07:00
api_packages_composer_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_packages_conan_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_packages_conda_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_packages_container_test.go Run `gopls modernize` on codebase (#34751) 2025-06-18 01:48:09 +07:00
api_packages_cran_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_packages_debian_test.go Run `gopls modernize` on codebase (#34751) 2025-06-18 01:48:09 +07:00
api_packages_generic_test.go Add a config option to block "expensive" pages for anonymous users (#34024) 2025-03-30 05:26:19 +07:00
api_packages_goproxy_test.go Refactor some tests (#34580) 2025-06-03 01:26:19 +07:00
api_packages_helm_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_packages_maven_test.go Run `gopls modernize` on codebase (#34751) 2025-06-18 01:48:09 +07:00
api_packages_npm_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_packages_nuget_test.go Improve nuget/rubygems package registries (#34741) 2025-06-17 19:42:00 +07:00
api_packages_pub_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_packages_pypi_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_packages_rpm_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_packages_rubygems_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_packages_swift_test.go Swift files can be passed either as file or as form value (#34068) 2025-04-18 20:09:56 +07:00
api_packages_test.go when using rules to delete packages, remove unclean bugs (#34632) 2025-06-18 04:47:49 +07:00
api_packages_vagrant_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_private_serv_test.go Use test context in tests and new loop system in benchmarks (#33648) 2025-02-20 09:57:40 +07:00
api_pull_commits_test.go
api_pull_review_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_pull_test.go Fix bug when API get pull changed files for deleted head repository (#34333) 2025-05-04 19:17:17 +07:00
api_releases_attachment_test.go
api_releases_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_repo_archive_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_repo_avatar_test.go
api_repo_branch_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_repo_collaborator_test.go Fix some user name usages (#33689) 2025-02-23 12:33:43 +07:00
api_repo_compare_test.go
api_repo_edit_test.go
api_repo_file_create_test.go Run `gopls modernize` on codebase (#34751) 2025-06-18 01:48:09 +07:00
api_repo_file_delete_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_repo_file_get_test.go Give organisation members access to organisation feeds (#33508) 2025-03-15 17:49:06 +07:00
api_repo_file_helpers.go
api_repo_file_update_test.go Add `last_committer_date` and `last_author_date` for file contents API (#32921) 2025-04-02 21:47:31 +07:00
api_repo_files_change_test.go Add `last_committer_date` and `last_author_date` for file contents API (#32921) 2025-04-02 21:47:31 +07:00
api_repo_files_get_test.go Add API endpoint to request contents of multiple files simultaniously (#34139) 2025-04-22 01:20:11 +07:00
api_repo_get_contents_list_test.go Add `last_committer_date` and `last_author_date` for file contents API (#32921) 2025-04-02 21:47:31 +07:00
api_repo_get_contents_test.go Add API endpoint to request contents of multiple files simultaniously (#34139) 2025-04-22 01:20:11 +07:00
api_repo_git_blobs_test.go Add API endpoint to request contents of multiple files simultaniously (#34139) 2025-04-22 01:20:11 +07:00
api_repo_git_commits_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_repo_git_hook_test.go
api_repo_git_notes_test.go
api_repo_git_ref_test.go
api_repo_git_tags_test.go Remove context from git struct (#33793) 2025-03-04 11:56:11 +07:00
api_repo_git_trees_test.go Improve "generate new access token" form (#33730) 2025-02-27 19:40:12 +07:00
api_repo_hook_test.go
api_repo_languages_test.go
api_repo_lfs_locks_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_repo_lfs_migrate_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_repo_lfs_test.go Refactor some tests (#34580) 2025-06-03 01:26:19 +07:00
api_repo_license_test.go
api_repo_raw_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_repo_secrets_test.go Added Description Field for Secrets and Variables (#33526) 2025-03-17 19:24:54 +07:00
api_repo_tags_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_repo_teams_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_repo_test.go Remove unused param `doer` (#34545) 2025-06-18 03:12:16 +07:00
api_repo_topic_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_repo_variables_test.go fix: return 201 Created for CreateVariable API responses (#34517) 2025-05-26 12:12:49 +07:00
api_settings_test.go Add API endpoint to request contents of multiple files simultaniously (#34139) 2025-04-22 01:20:11 +07:00
api_team_test.go Fix team permission (#34128) 2025-04-08 04:15:15 +07:00
api_team_user_test.go Allow admins and org owners to change org member public status (#28294) 2025-04-13 08:07:29 +07:00
api_token_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_twofa_test.go Enforce two-factor auth (2FA: TOTP or WebAuthn) (#34187) 2025-04-28 15:31:59 +07:00
api_user_avatar_test.go
api_user_block_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_user_email_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_user_follow_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_user_heatmap_test.go
api_user_info_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_user_org_perm_test.go
api_user_orgs_test.go
api_user_search_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
api_user_secrets_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_user_star_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
api_user_update_test.go
api_user_variables_test.go fix: return 201 Created for CreateVariable API responses (#34517) 2025-05-26 12:12:49 +07:00
api_user_watch_test.go
api_wiki_test.go
attachment_test.go
auth_ldap_test.go Refactor FindOrgOptions to use enum instead of bool, fix membership visibility (#34629) 2025-06-09 03:30:34 +07:00
avatar.png
branches_test.go
change_default_branch_test.go Fix incorrect divergence cache after switching default branch (#34370) 2025-05-08 18:00:29 +07:00
cmd_keys_test.go Migrate to urfave v3 (#34510) 2025-06-10 12:35:12 +07:00
compare_test.go Fix bug when migrating repository (#34182) 2025-04-14 04:48:03 +07:00
cors_test.go
create_no_session_test.go
csrf_test.go
db_collation_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
delete_user_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
download_test.go
dump_restore_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
editor_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
empty_repo_test.go Fix repo broken check (#34444) 2025-05-13 08:18:45 +07:00
ephemeral_actions_runner_deletion_test.go Remove unused param `doer` (#34545) 2025-06-18 03:12:16 +07:00
eventsource_test.go
explore_repos_test.go
explore_user_test.go
feed_repo_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
feed_user_test.go
git_general_test.go Keeping consistent between UI and API about combined commit status state and fix some bugs (#34562) 2025-06-09 04:05:33 +07:00
git_helper_for_declarative_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
git_lfs_ssh_test.go Fix LFS URL (#33840) 2025-03-10 17:36:02 +07:00
git_misc_test.go Remove context from git struct (#33793) 2025-03-04 11:56:11 +07:00
git_push_test.go Remove unused param `doer` (#34545) 2025-06-18 03:12:16 +07:00
git_smart_http_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
goget_test.go
gpg_ssh_git_test.go Improve instance wide ssh commit signing (#34341) 2025-06-11 10:32:55 +07:00
html_helper.go Improve repo commit view (#33877) 2025-03-14 07:45:11 +07:00
incoming_email_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
integration_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
issue_test.go Run `gopls modernize` on codebase (#34751) 2025-06-18 01:48:09 +07:00
lfs_getobject_test.go
lfs_local_endpoint_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
lfs_view_test.go Use lfs label for lfs file rather than a long description (#34363) 2025-05-05 00:07:29 +07:00
linguist_test.go Use test context in tests and new loop system in benchmarks (#33648) 2025-02-20 09:57:40 +07:00
links_test.go Support creating relative link to raw path in markdown (#34105) 2025-04-03 01:05:43 +07:00
markup_external_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
migrate_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
mirror_pull_test.go Fix bug when migrating repository (#34182) 2025-04-14 04:48:03 +07:00
mirror_push_test.go Fix bug when migrating repository (#34182) 2025-04-14 04:48:03 +07:00
nonascii_branches_test.go
oauth_test.go Improve oauth2 error handling (#33969) 2025-03-22 10:15:45 +07:00
org_count_test.go Refactor FindOrgOptions to use enum instead of bool, fix membership visibility (#34629) 2025-06-09 03:30:34 +07:00
org_profile_test.go
org_project_test.go
org_team_invite_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
org_test.go Run `gopls modernize` on codebase (#34751) 2025-06-18 01:48:09 +07:00
org_worktime_test.go
private-testing.key
privateactivity_test.go
project_test.go Run `gopls modernize` on codebase (#34751) 2025-06-18 01:48:09 +07:00
pull_commit_test.go Fix test code (#33829) 2025-03-10 21:45:42 +07:00
pull_compare_test.go Remove unused param `doer` (#34545) 2025-06-18 03:12:16 +07:00
pull_create_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
pull_diff_test.go
pull_merge_test.go Keeping consistent between UI and API about combined commit status state and fix some bugs (#34562) 2025-06-09 04:05:33 +07:00
pull_review_test.go Fix panic when comment is nil (#34257) 2025-04-24 01:58:00 +07:00
pull_status_test.go Keeping consistent between UI and API about combined commit status state and fix some bugs (#34562) 2025-06-09 04:05:33 +07:00
pull_update_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
release_test.go Run `gopls modernize` on codebase (#34751) 2025-06-18 01:48:09 +07:00
rename_branch_test.go
repo_activity_test.go Do not show 500 error when default branch doesn't exist (#34096) 2025-04-01 21:39:00 +07:00
repo_archive_test.go
repo_branch_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
repo_commits_search_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
repo_commits_test.go Run `gopls modernize` on codebase (#34751) 2025-06-18 01:48:09 +07:00
repo_fork_test.go Prevent duplicate form submissions when creating forks (#34714) 2025-06-16 04:19:16 +07:00
repo_generate_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
repo_merge_upstream_test.go
repo_migrate_test.go
repo_search_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
repo_tag_test.go Remove context from git struct (#33793) 2025-03-04 11:56:11 +07:00
repo_test.go Remove unused param `doer` (#34545) 2025-06-18 03:12:16 +07:00
repo_topic_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
repo_watch_test.go
repo_webhook_test.go Keeping consistent between UI and API about combined commit status state and fix some bugs (#34562) 2025-06-09 04:05:33 +07:00
repofiles_change_test.go Refactor some file edit related code (#34744) 2025-06-18 01:18:07 +07:00
session_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
setting_test.go Refactor some tests (#34580) 2025-06-03 01:26:19 +07:00
signin_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
signout_test.go
signup_test.go Refactor some tests (#34580) 2025-06-03 01:26:19 +07:00
ssh_key_test.go Run `gopls modernize` on codebase (#34751) 2025-06-18 01:48:09 +07:00
timetracking_test.go Improve repo commit view (#33877) 2025-03-14 07:45:11 +07:00
user_avatar_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
user_settings_test.go Improve repo commit view (#33877) 2025-03-14 07:45:11 +07:00
user_test.go Refactor some tests (#34580) 2025-06-03 01:26:19 +07:00
version_test.go
view_test.go Improve repo commit view (#33877) 2025-03-14 07:45:11 +07:00
webfinger_test.go Refactor some tests (#34580) 2025-06-03 01:26:19 +07:00
wiki_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
xss_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00

README.md

Integration tests

Integration tests can be run with make commands for the appropriate backends, namely:

make test-sqlite
make test-pgsql
make test-mysql
make test-mssql

Make sure to perform a clean build before running tests:

make clean build

Run tests via local act_runner

Run all jobs

act_runner exec -W ./.github/workflows/pull-db-tests.yml --event=pull_request --default-actions-url="https://github.com" -i catthehacker/ubuntu:runner-latest

Warning: This file defines many jobs, so it will be resource-intensive and therefor not recommended.

Run single job

act_runner exec -W ./.github/workflows/pull-db-tests.yml --event=pull_request --default-actions-url="https://github.com" -i catthehacker/ubuntu:runner-latest -j <job_name>

You can list all job names via:

act_runner exec -W ./.github/workflows/pull-db-tests.yml --event=pull_request --default-actions-url="https://github.com" -i catthehacker/ubuntu:runner-latest -l

Run sqlite integration tests

Start tests

make test-sqlite

Run MySQL integration tests

Setup a MySQL database inside docker

docker run -e "MYSQL_DATABASE=test" -e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" -p 3306:3306 --rm --name mysql mysql:latest #(just ctrl-c to stop db and clean the container)
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --rm --name elasticsearch elasticsearch:7.6.0 #(in a second terminal, just ctrl-c to stop db and clean the container)

Start tests based on the database container

TEST_MYSQL_HOST=localhost:3306 TEST_MYSQL_DBNAME=test TEST_MYSQL_USERNAME=root TEST_MYSQL_PASSWORD='' make test-mysql

Run pgsql integration tests

Setup a pgsql database inside docker

docker run -e "POSTGRES_DB=test" -e "POSTGRES_USER=postgres" -e "POSTGRES_PASSWORD=postgres" -p 5432:5432 --rm --name pgsql postgres:latest #(just ctrl-c to stop db and clean the container)

Setup minio inside docker

docker run --rm -p 9000:9000 -e MINIO_ROOT_USER=123456 -e MINIO_ROOT_PASSWORD=12345678 --name minio bitnami/minio:2023.8.31

Start tests based on the database container

TEST_MINIO_ENDPOINT=localhost:9000 TEST_PGSQL_HOST=localhost:5432 TEST_PGSQL_DBNAME=postgres TEST_PGSQL_USERNAME=postgres TEST_PGSQL_PASSWORD=postgres make test-pgsql

Run mssql integration tests

Setup a mssql database inside docker

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_PID=Standard" -e "SA_PASSWORD=MwantsaSecurePassword1" -p 1433:1433 --rm --name mssql microsoft/mssql-server-linux:latest #(just ctrl-c to stop db and clean the container)

Start tests based on the database container

TEST_MSSQL_HOST=localhost:1433 TEST_MSSQL_DBNAME=gitea_test TEST_MSSQL_USERNAME=sa TEST_MSSQL_PASSWORD=MwantsaSecurePassword1 make test-mssql

Running individual tests

Example command to run GPG test:

For SQLite:

make test-sqlite#GPG

For other databases(replace mssql to mysql, or pgsql):

TEST_MSSQL_HOST=localhost:1433 TEST_MSSQL_DBNAME=test TEST_MSSQL_USERNAME=sa TEST_MSSQL_PASSWORD=MwantsaSecurePassword1 make test-mssql#GPG

Setting timeouts for declaring long-tests and long-flushes

We appreciate that some testing machines may not be very powerful and the default timeouts for declaring a slow test or a slow clean-up flush may not be appropriate.

You can set the following environment variables:

GITEA_TEST_SLOW_RUN="10s" GITEA_TEST_SLOW_FLUSH="1s" make test-sqlite