""" Tests for the workouts application. Sources: https://docs.djangoproject.com/en/4.0/topics/testing/overview/ https://docs.djangoproject.com/en/4.0/topics/testing/tools/ https://docs.djangoproject.com/en/4.0/topics/testing/advanced/ """ from urllib.request import Request from django.test import TestCase, Client, RequestFactory from django.urls import reverse, resolve from workouts.views import Workout, WorkoutDetail, WorkoutList from users.models import User from workouts.models import Workout import workouts.permissions as Perms # Create your tests here. class PermissionsTestCase(TestCase): def setUp(self): #User setup 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() #Workout setup self.workout_one = Workout.objects.create(name="Curl", date="2022-03-03", notes="nice", owner=self.user_one, visibility="PU") self.workout_one.save() #Factory setup self.factory= RequestFactory() #Printstatements print("username of user_one: " + self.user_one.username) print("Workout: "+ self.workout_one.name + "Owner:" +self.workout_one.owner.username) def test_user_database(self): user_count=User.objects.all().count() self.assertEqual(user_count, 1) def test_is_owner(self): #Perms.IsOwner.has_object_permission(self, self.user_one,"", self.workout_one) #print(Perms.IsOwner.has_object_permission(self.user_one, self.workout_one)) test_request = self.factory.get('/') test_request.user = self.user_one is_owner = Perms.IsOwner.has_object_permission(self, test_request, None, self.workout_one) self.assertTrue(is_owner)