Private
Public Access
1
0
This commit is contained in:
2024-11-26 12:37:15 +01:00
parent b94197a74b
commit 68a3ad8bcd
3 changed files with 70 additions and 31 deletions

View File

@@ -44,7 +44,6 @@ class OwnApi(TestCase):
self.password = faker.word() self.password = faker.word()
self.u.set_password(self.password) self.u.set_password(self.password)
self.u.save() self.u.save()
self.factory = APIRequestFactory() self.factory = APIRequestFactory()
@@ -210,6 +209,43 @@ class OwnApi(TestCase):
response = strokedata_tcx(request) response = strokedata_tcx(request)
self.assertEqual(response.status_code,200) self.assertEqual(response.status_code,200)
def test_strokedataform_rowingdata(self):
url = reverse('strokedata_rowingdata')
filename = 'rowers/tests/testdata/testdata.csv'
f = open(filename, 'rb')
# Use Basic Auth header (alternative if using a custom view)
credentials = f"{self.u.username}:{self.password}"
base64_credentials = base64.b64encode(credentials.encode()).decode()
# Use Basic Auth header
headers = {
"HTTP_AUTHORIZATION": f"Basic {base64_credentials}"
}
form_data = {
"workouttype": "rower",
"boattype": "1x",
"notes": "A test file upload",
}
# Send POST request
response = self.client.post(
url,
{"file": f, **form_data},
format="multipart", # Ensure multipart/form-data is used
**headers, # Optional if login doesn't suffice
)
f.close()
# Assertions
self.assertEqual(response.status_code, 201)
def test_strokedataform_empty(self): def test_strokedataform_empty(self):
login = self.c.login(username=self.u.username, password=self.password) login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login) self.assertTrue(login)

Binary file not shown.

View File

@@ -434,7 +434,9 @@ def strokedata_rowingdata(request):
if r.rowerplan == 'freecoach': if r.rowerplan == 'freecoach':
return HttpResponseNotAllowed("This endpoint is for users, not for free coach accounts") return HttpResponseNotAllowed("This endpoint is for users, not for free coach accounts")
if request.method == 'POST': if request.method != 'POST':
return HttpResponseNotAllowed("Method not supported") # pragma: no cover
form = DocumentsForm(request.POST, request.FILES) form = DocumentsForm(request.POST, request.FILES)
if not form.is_valid(): if not form.is_valid():
return HttpResponseBadRequest(json.dumps(form.errors)) return HttpResponseBadRequest(json.dumps(form.errors))
@@ -462,12 +464,13 @@ def strokedata_rowingdata(request):
handle_request_post, handle_request_post,
url, url,
uploadoptions) uploadoptions)
response = JsonResponse(
return JsonResponse(
{ {
"status": "success", "status": "success",
} }
) )
response.status_code = 201
return response
@csrf_exempt @csrf_exempt