diff --git a/backend/secfit/workouts/tests.py b/backend/secfit/workouts/tests.py index b3fb7c1ffeb6c4b7a4b50117870db06a19935f86..a290b2ba27edb8803726a90a43b6550f92742d95 100644 --- a/backend/secfit/workouts/tests.py +++ b/backend/secfit/workouts/tests.py @@ -10,9 +10,9 @@ from django.test import TestCase, Client, RequestFactory from django.urls import reverse, resolve -from workouts.views import Workout, WorkoutDetail, WorkoutList +#from workouts.views import Workout, WorkoutDetail, WorkoutList from users.models import User -from workouts.models import Workout +from workouts.models import Workout, Exercise, ExerciseInstance import workouts.permissions as Perms # Create your tests here. @@ -47,29 +47,52 @@ class IsOwnerTestCase(TestCase): self.assertTrue(is_owner) class IsOwnerOfWorkoutTestCase(TestCase): + """One workout is associated with 1 or more exercises (instances) + Each exercise instance must have an exercise type + So: Create Workout, then exercise, then instance of ex and associated with workout + User1 owns: workout1, + Coach1 Coaches: User1 + ExerciseInstance1 associated with workout1, and is instance of exercise_one + """ def setUp(self): - #Initiate User, Workout and RequestFactory + #Initiate User, Workout, Exercise, ExerciseInstance and RequestFactory self.user_one = User.objects.create(username = "jorsi", phone_number="12345678", country="Norway", city="Trondheim", street_address="street 3", favourite_exercise="Biceps", main_gym="SIT") self.user_one.save() - self.workout_one = Workout.objects.create(name="Curl", date="2022-03-03", notes="nice", + + self.coach_one = User.objects.create(coach=self.user_one, username = "sigurd", phone_number="23456789", country="Norway", + city="Trondheim", street_address="street 4", favourite_exercise="Biceps", main_gym="SIT") + + self.workout_one = Workout.objects.create(name="Chest", date="2022-03-03", notes="nice", owner=self.user_one, visibility="PU") self.workout_one.save() + + self.exercise_one = Exercise.objects.create(name="Pushups", description="push from ground", duration="10", + calories="20", muscleGroup="chest", unit="10") + self.exercise_one.save() + + self.ex_instance_one = ExerciseInstance.objects.create(workout=self.workout_one, exercise=self.exercise_one, + sets="3", number="10") + self.ex_instance_one.save() + self.factory= RequestFactory() def test_has_permission_get(self): #takes self, request, view. + req_data = { "workout" : "api/workouts/1"} # views.WorkoutDetail.as_view() test_request = self.factory.get("/") test_request.user = self.user_one - req_data = { "workout" : "api/workouts/1"} # views.WorkoutDetail.as_view() test_request.data = req_data #has_perm = Perms.IsOwnerOfWorkout.has_permission(self, test_request, None) #self.assertTrue(has_perm) def test_has_object_permission(self): #takes self, request, view obj. + req_data = { "workout" : "api/workouts/1"} test_request = self.factory.get("/") test_request.user = self.user_one - req_data = { "workout" : "api/workouts/1"} # views.WorkoutDetail.as_view() test_request.data = req_data + + is_owner = Perms.IsOwnerOfWorkout.has_object_permission(self, test_request, None, self.ex_instance_one) + self.assertTrue(is_owner) #has_obj_perm = Perms.IsOwnerOfWorkout.has_object_permission(self, test_request, None, )