From 0d6070d2c992877acb88904d5b4098d7b85bd7f7 Mon Sep 17 00:00:00 2001 From: Josef Olsson <josol381@student.liu.se> Date: Wed, 21 Apr 2021 10:13:19 +0200 Subject: [PATCH] Add copy competition api and test --- server/app/apis/competitions.py | 12 ++++++++++++ server/app/apis/slides.py | 2 +- server/tests/test_app.py | 12 +++++++++++- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/server/app/apis/competitions.py b/server/app/apis/competitions.py index db2ca68a..a18ed85e 100644 --- a/server/app/apis/competitions.py +++ b/server/app/apis/competitions.py @@ -61,3 +61,15 @@ class CompetitionSearch(Resource): args = competition_search_parser.parse_args(strict=True) items, total = dbc.search.competition(**args) return list_response(list_schema.dump(items), total) + + +@api.route("/<CID>/copy") +@api.param("CID") +class SlidesOrder(Resource): + @check_jwt(editor=True) + def post(self, CID): + item_competition = dbc.get.competition(CID) + + item_competition_copy = dbc.copy.competition(item_competition) + + return item_response(schema.dump(item_competition_copy)) diff --git a/server/app/apis/slides.py b/server/app/apis/slides.py index 3d9ce6fe..3c25f901 100644 --- a/server/app/apis/slides.py +++ b/server/app/apis/slides.py @@ -89,7 +89,7 @@ class SlidesOrder(Resource): @api.param("CID,SOrder") class SlidesOrder(Resource): @check_jwt(editor=True) - def put(self, CID, SOrder): + def post(self, CID, SOrder): item_slide = dbc.get.slide(CID, SOrder) item_slide_copy = dbc.copy.slide(item_slide) diff --git a/server/tests/test_app.py b/server/tests/test_app.py index aa1758f9..cc50d4fd 100644 --- a/server/tests/test_app.py +++ b/server/tests/test_app.py @@ -98,6 +98,16 @@ def test_competition_api(client): response, body = delete(client, f"/api/competitions/{competition_id}", headers=headers) assert response.status_code == codes.OK + # Get competition + competition_id = 2 + response, body = get(client, f"/api/competitions/{competition_id}", headers=headers) + assert response.status_code == codes.OK + + # Copies competition + for _ in range(10): + response, _ = post(client, f"/api/competitions/{competition_id}/copy", headers=headers) + assert response.status_code == codes.OK + def test_auth_and_user_api(client): add_default_values() @@ -303,7 +313,7 @@ def test_slide_api(client): # Copies slide for _ in range(10): - response, _ = put(client, f"/api/competitions/{CID}/slides/{slide_order}/copy", headers=headers) + response, _ = post(client, f"/api/competitions/{CID}/slides/{slide_order}/copy", headers=headers) assert response.status_code == codes.OK -- GitLab