mirror of
https://github.com/go-gitea/gitea.git
synced 2024-05-11 05:55:29 +00:00
1f951cdeba
* Create API endpoints for repo topics. Signed-off-by: David Svantesson <[email protected]> * Generate swagger Signed-off-by: David Svantesson <[email protected]> * Add documentation to functions Signed-off-by: David Svantesson <[email protected]> * Grammar fix Signed-off-by: David Svantesson <[email protected]> * Fix function comment Signed-off-by: David Svantesson <[email protected]> * Can't use FindTopics when looking for a single repo topic, as it doesnt use exact match Signed-off-by: David Svantesson <[email protected]> * Add PUT /repos/{owner}/{repo}/topics and remove GET /repos/{owner}/{repo}/topics * Ignore if topic is sent twice in same request, refactoring. Signed-off-by: David Svantesson <[email protected]> * Fix topic dropdown with api changes. Signed-off-by: David Svantesson <[email protected]> * Style fix Signed-off-by: David Svantesson <[email protected]> * Update API documentation Signed-off-by: David Svantesson <[email protected]> * Better way to handle duplicate topics in slice Signed-off-by: David Svantesson <[email protected]> * Make response element TopicName an array of strings, instead of using an array of TopicName Signed-off-by: David Svantesson <[email protected]> * Add test cases for API Repo Topics. Signed-off-by: David Svantesson <[email protected]> * Fix format of tests Signed-off-by: David Svantesson <[email protected]> * Fix comments Signed-off-by: David Svantesson <[email protected]> * Fix unit tests after adding some more topics to the test fixture. Signed-off-by: David Svantesson <[email protected]> * Update models/topic.go Limit multiple if else if ... Co-Authored-By: Antoine GIRARD <[email protected]> * Engine as first parameter in function Co-Authored-By: Antoine GIRARD <[email protected]> * Replace magic numbers with http status code constants. Signed-off-by: David Svantesson <[email protected]> * Fix variable scope Signed-off-by: David Svantesson <[email protected]> * Test one read with login and one with token Signed-off-by: David Svantesson <[email protected]> * Add some more tests Signed-off-by: David Svantesson <[email protected]> * Apply suggestions from code review Use empty struct for efficiency Co-Authored-By: Lauris BH <[email protected]> * Add test case to check access for user with write access Signed-off-by: David Svantesson <[email protected]> * Fix access, repo admin required to change topics Signed-off-by: David Svantesson <[email protected]> * Correct first test to be without token Signed-off-by: David Svantesson <[email protected]> * Any repo reader should be able to access topics. * No need for string pointer Signed-off-by: David Svantesson <[email protected]>
Integrations tests
Integration tests can be run with make commands for the appropriate backends, namely:
make test-mysql
make test-pgsql
make test-sqlite
Make sure to perform a clean build before running tests:
make clean build
Run all tests via local drone
drone exec --local --build-event "pull_request"
Run sqlite integrations tests
Start tests
make test-sqlite
Run mysql integrations tests
Setup a mysql database inside docker
docker run -e "MYSQL_DATABASE=test" -e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" --rm --name mysql mysql:5.7 #(just ctrl-c to stop db and clean the container)
Start tests based on the database container
TEST_MYSQL_HOST="$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql):3306" TEST_MYSQL_DBNAME=test TEST_MYSQL_USERNAME=root TEST_MYSQL_PASSWORD='' make test-mysql
Run pgsql integrations tests
Setup a pgsql database inside docker
docker run -e "POSTGRES_DB=test" --rm --name pgsql postgres:9.5 #(just ctrl-c to stop db and clean the container)
Start tests based on the database container
TEST_PGSQL_HOST=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' pgsql) TEST_PGSQL_DBNAME=test TEST_PGSQL_USERNAME=postgres TEST_PGSQL_PASSWORD=postgres make test-pgsql
Running individual tests
Example command to run GPG test with sqlite backend:
go test -c code.gitea.io/gitea/integrations \
-o integrations.sqlite.test -tags 'sqlite' &&
GITEA_ROOT="$GOPATH/src/code.gitea.io/gitea" \
GITEA_CONF=integrations/sqlite.ini ./integrations.sqlite.test \
-test.v -test.run GPG