Skip to content

Commit

Permalink
make tests for number and set
Browse files Browse the repository at this point in the history
  • Loading branch information
Emilorv committed Apr 3, 2025
1 parent ba2ad87 commit cf03910
Show file tree
Hide file tree
Showing 3 changed files with 142 additions and 154 deletions.
158 changes: 69 additions & 89 deletions backend/tests/test_exercise_number.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import pytest
from rest_framework.test import APIClient
from django.utils.timezone import now
from workouts.models import Workout
from workouts.models import Workout, Exercise
from django.contrib.auth import get_user_model
from workouts.serializers import ExerciseSerializer

from django.test import TestCase

Expand All @@ -12,113 +13,92 @@ def setUp(self):
self.client = APIClient()
self.user = get_user_model().objects.create_user(username="testuser", password="password")
self.client.force_authenticate(self.user)

def test_exercise_number_negative_number(self):
self.exercise = Exercise.objects.create(name="Test Exercise", description="Test Description")
self.exercise.url = ExerciseSerializer(self.exercise, context={"request": None}).data["url"]

def test_exercise_number_min_minus(self):
response = self.client.post("/api/workouts/", {
"name": "Morning Run",
"date": now().isoformat(),
"notes": "5km run",
"name": "Invalid workout", # Adding name field which is required
"date": now().isoformat(), # Adding date field which is required
"notes": "Invalid", # Adding notes field which is required
"visibility": "PU", # Adding visibility field which is required
"owner": self.user.id, # Adding owner field which seems to be required
"exercise_instances": [] # Adding exercise_instances field which is required
}, format="json")


assert response.status_code == 201
assert Workout.objects.count() == 1

def test_exercise_number_non_number(self): #
response = self.client.post("/api/workouts/", {
"name": "Invalid Run",
"date": "invalid_date",
"notes": "Wrong format",
"visibility": "PU", # Adding required field
"owner": self.user.id, # Adding required field
"exercise_instances": [] # Adding required field
"owner": self.user.id, # Adding owner field which is required
"exercise_instances": [{"exercise":self.exercise.url, "sets": 1, "number": -5}]
}, format="json")

assert response.status_code == 400 # Should return validation error

def test_exercise_number_min_minus(self): #
assert response.status_code == 400

def test_exercise_number_non_number(self):
response = self.client.post("/api/workouts/", {
"name": "Invalid Run",
"date": "invalid_date",
"notes": "Wrong format",
"visibility": "PU", # Adding required field
"owner": self.user.id, # Adding required field
"exercise_instances": [] # Adding required field
"name": "Valid workout", # Adding name field which is required
"date": now().isoformat(), # Adding date field which is required
"notes": "Valid", # Adding notes field which is required
"visibility": "PU", # Adding visibility field which is required
"owner": self.user.id, # Adding owner field which is required
"exercise_instances": [{"exercise":self.exercise.url, "sets": 1, "number": "a"}]
}, format="json")

assert response.status_code == 400 # Should return validation error

def test_exercise_number_min(self): #
response = self.client.post("/api/workouts/", {
"name": "Invalid Run",
"date": "invalid_date",
"notes": "Wrong format",
"visibility": "PU", # Adding required field
"owner": self.user.id, # Adding required field
"exercise_instances": [] # Adding required field
}, format="json")

assert response.status_code == 400 # Should return validation error
assert response.status_code == 400

def test_exercise_number_min_plus(self): #

def test_exercise_number_min_minus(self):
response = self.client.post("/api/workouts/", {
"name": "Invalid Run",
"date": "invalid_date",
"notes": "Wrong format",
"visibility": "PU", # Adding required field
"owner": self.user.id, # Adding required field
"exercise_instances": [] # Adding required field
"name": "Invalid workout", # Adding name field which is required
"date": now().isoformat(), # Adding date field which is required
"notes": "Invalid", # Adding notes field which is required
"visibility": "PU", # Adding visibility field which is required
"owner": self.user.id, # Adding owner field which is required
"exercise_instances": [{"exercise":self.exercise.url, "sets": 1, "number": 0}]
}, format="json")

assert response.status_code == 400 # Should return validation error

print(self.exercise.id)
assert response.status_code == 400

def test_exercise_number_nom(self): #
def test_exercise_number_min_plus(self):
response = self.client.post("/api/workouts/", {
"name": "Invalid Run",
"date": "invalid_date",
"notes": "Wrong format",
"visibility": "PU", # Adding required field
"owner": self.user.id, # Adding required field
"exercise_instances": [] # Adding required field
"name": "Valid workout", # Adding name field which is required
"date": now().isoformat(), # Adding date field which is required
"notes": "Valid", # Adding notes field which is required
"visibility": "PU", # Adding visibility field which is required
"owner": self.user.id, # Adding owner field which is required
"exercise_instances": [{"exercise":self.exercise.url, "sets": 1, "number": 2}]
}, format="json")

assert response.status_code == 400 # Should return validation error

def test_exercise_number_max_minus(self): #
assert response.status_code == 201

def test_exercise_number_nom(self):
response = self.client.post("/api/workouts/", {
"name": "Invalid Run",
"date": "invalid_date",
"notes": "Wrong format",
"visibility": "PU", # Adding required field
"owner": self.user.id, # Adding required field
"exercise_instances": [] # Adding required field
"name": "Valid workout", # Adding name field which is required
"date": now().isoformat(), # Adding date field which is required
"notes": "Valid", # Adding notes field which is required
"visibility": "PU", # Adding visibility field which is required
"owner": self.user.id, # Adding owner field which is required
"exercise_instances": [{"exercise":self.exercise.url, "sets": 1, "number": 3}]
}, format="json")

assert response.status_code == 400 # Should return validation error

def test_exercise_number_max(self): #
assert response.status_code == 201

def test_exercise_number_max_minus(self):
response = self.client.post("/api/workouts/", {
"name": "Invalid Run",
"date": "invalid_date",
"notes": "Wrong format",
"visibility": "PU", # Adding required field
"owner": self.user.id, # Adding required field
"exercise_instances": [] # Adding required field
"name": "Valid workout", # Adding name field which is required
"date": now().isoformat(), # Adding date field which is required
"notes": "Valid", # Adding notes field which is required
"visibility": "PU", # Adding visibility field which is required
"owner": self.user.id, # Adding owner field which is required
"exercise_instances": [{"exercise":self.exercise.url, "sets": 1, "number": 998}]
}, format="json")

assert response.status_code == 400 # Should return validation error

def test_exercise_number_max_plus(self): #
assert response.status_code == 201

def test_exercise_number_max_plus(self):
response = self.client.post("/api/workouts/", {
"name": "Invalid Run",
"date": "invalid_date",
"notes": "Wrong format",
"visibility": "PU", # Adding required field
"owner": self.user.id, # Adding required field
"exercise_instances": [] # Adding required field
"name": "Valid workout", # Adding name field which is required
"date": now().isoformat(), # Adding date field which is required
"notes": "Valid", # Adding notes field which is required
"visibility": "PU", # Adding visibility field which is required
"owner": self.user.id, # Adding owner field which is required
"exercise_instances": [{"exercise":self.exercise.url, "sets": 1, "number": 1000}]
}, format="json")

assert response.status_code == 400 # Should return validation error

assert response.status_code == 400

122 changes: 73 additions & 49 deletions backend/tests/test_exercise_set.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import pytest
from rest_framework.test import APIClient
from django.utils.timezone import now
from workouts.models import Workout
from workouts.models import Workout, Exercise
from django.contrib.auth import get_user_model
from workouts.serializers import ExerciseSerializer

from django.test import TestCase

Expand All @@ -12,66 +13,89 @@ def setUp(self):
self.client = APIClient()
self.user = get_user_model().objects.create_user(username="testuser", password="password")
self.client.force_authenticate(self.user)

def test_exercise_set_min_minus(self): #
self.exercise = Exercise.objects.create(name="Test Exercise", description="Test Description")
self.exercise.url = ExerciseSerializer(self.exercise, context={"request": None}).data["url"]

def test_exercise_set_min_minus(self):
response = self.client.post("/api/workouts/", {
"name": "Morning Run",
"date": now().isoformat(),
"notes": "5km run",
"name": "Invalid workout", # Adding name field which is required
"date": now().isoformat(), # Adding date field which is required
"notes": "Invalid", # Adding notes field which is required
"visibility": "PU", # Adding visibility field which is required
"owner": self.user.id, # Adding owner field which seems to be required
"exercise_instances": [] # Adding exercise_instances field which is required
"owner": self.user.id, # Adding owner field which is required
"exercise_instances": [{"exercise":self.exercise.url, "sets": 0, "number": 1}]
}, format="json")



assert response.status_code == 400

def test_exercise_set_min(self):
response = self.client.post("/api/workouts/", {
"name": "Valid workout", # Adding name field which is required
"date": now().isoformat(), # Adding date field which is required
"notes": "Valid", # Adding notes field which is required
"visibility": "PU", # Adding visibility field which is required
"owner": self.user.id, # Adding owner field which is required
"exercise_instances": [{"exercise":self.exercise.url, "sets": 1, "number": 1}]
}, format="json")

assert response.status_code == 201

def test_exercise_set_min_plus(self):
response = self.client.post("/api/workouts/", {
"name": "Valid workout", # Adding name field which is required
"date": now().isoformat(), # Adding date field which is required
"notes": "Valid", # Adding notes field which is required
"visibility": "PU", # Adding visibility field which is required
"owner": self.user.id, # Adding owner field which is required
"exercise_instances": [{"exercise":self.exercise.url, "sets": 2, "number": 1}]
}, format="json")

assert response.status_code == 201
assert Workout.objects.count() == 1

def test_exercise_set_min_plus(self): #
def test_exercise_set_nom(self):
response = self.client.post("/api/workouts/", {
"name": "Invalid Run",
"date": "invalid_date",
"notes": "Wrong format",
"visibility": "PU", # Adding required field
"owner": self.user.id, # Adding required field
"exercise_instances": [] # Adding required field
"name": "Valid workout", # Adding name field which is required
"date": now().isoformat(), # Adding date field which is required
"notes": "Valid", # Adding notes field which is required
"visibility": "PU", # Adding visibility field which is required
"owner": self.user.id, # Adding owner field which is required
"exercise_instances": [{"exercise":self.exercise.url, "sets": 3, "number": 1}]
}, format="json")

assert response.status_code == 400 # Should return validation error

def test_exercise_set_nom(self): #
assert response.status_code == 201

def test_exercise_set_max_minus(self):
response = self.client.post("/api/workouts/", {
"name": "Invalid Run",
"date": "invalid_date",
"notes": "Wrong format",
"visibility": "PU", # Adding required field
"owner": self.user.id, # Adding required field
"exercise_instances": [] # Adding required field
"name": "Valid workout", # Adding name field which is required
"date": now().isoformat(), # Adding date field which is required
"notes": "Valid", # Adding notes field which is required
"visibility": "PU", # Adding visibility field which is required
"owner": self.user.id, # Adding owner field which is required
"exercise_instances": [{"exercise":self.exercise.url, "sets": 998, "number": 1}]
}, format="json")

assert response.status_code == 400 # Should return validation error

def test_exercise_set_max_minus(self): #
assert response.status_code == 201

def test_exercise_set_max(self):
response = self.client.post("/api/workouts/", {
"name": "Invalid Run",
"date": "invalid_date",
"notes": "Wrong format",
"visibility": "PU", # Adding required field
"owner": self.user.id, # Adding required field
"exercise_instances": [] # Adding required field
"name": "Valid workout", # Adding name field which is required
"date": now().isoformat(), # Adding date field which is required
"notes": "Valid", # Adding notes field which is required
"visibility": "PU", # Adding visibility field which is required
"owner": self.user.id, # Adding owner field which is required
"exercise_instances": [{"exercise":self.exercise.url, "sets": 999, "number": 1}]
}, format="json")
assert response.status_code == 400 # Should return validation error
def test_exercise_set_max_plus(self): #

assert response.status_code == 201

def test_exercise_set_max_plus(self):
response = self.client.post("/api/workouts/", {
"name": "Invalid Run",
"date": "invalid_date",
"notes": "Wrong format",
"visibility": "PU", # Adding required field
"owner": self.user.id, # Adding required field
"exercise_instances": [] # Adding required field
"name": "Invalid workout", # Adding name field which is required
"date": now().isoformat(), # Adding date field which is required
"notes": "Invalid", # Adding notes field which is required
"visibility": "PU", # Adding visibility field which is required
"owner": self.user.id, # Adding owner field which is required
"exercise_instances": [{"exercise":self.exercise.url, "sets": 1000, "number": 1}]
}, format="json")

assert response.status_code == 400 # Should return validation error


assert response.status_code == 400
16 changes: 0 additions & 16 deletions backend/tests/test_template.py

This file was deleted.

0 comments on commit cf03910

Please sign in to comment.