diff --git a/core/migrations/0004_answer_answer.py b/core/migrations/0004_answer_answer.py new file mode 100644 index 0000000000000000000000000000000000000000..572fa9c6901f4f0b454c7de5abe4b5dda715aa43 --- /dev/null +++ b/core/migrations/0004_answer_answer.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1.7 on 2023-05-03 11:42 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0003_topgym_user_alter_answer_user_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='answer', + name='answer', + field=models.TextField(default=''), + ), + ] diff --git a/core/models.py b/core/models.py index 9f0e28b794754b572f225585c4182f9350ec79b0..8f88f48c9f26b2b185e20c52f0ed284d35b3eadc 100644 --- a/core/models.py +++ b/core/models.py @@ -89,6 +89,8 @@ class Question(models.Model): class Answer(models.Model): user = models.ForeignKey(TopGym_User, on_delete=models.CASCADE) question = models.ForeignKey(Question, on_delete=models.CASCADE) + answer = models.TextField(default='') + diff --git a/core/tests.py b/core/tests.py index 29f09e3dd4bb6d64a66d9a0abb42584d3e64069b..37beceb965484f7d2ceff78bcb9e40f93d99d6ab 100644 --- a/core/tests.py +++ b/core/tests.py @@ -1,15 +1,130 @@ from django.test import TestCase from .models import * -class UserTest(TestCase): - def setUpTestData(cls): +#Models: Exercise, TopGym_User, WorkoutRoutine, WorkoutExercise, CompletedWorkout, Set, User_WorkoutRoutine, Friends, UserStats, Question, Answer, UserSurvey + +class ModelTest(TestCase): + def test_friends(self): u1 = TopGym_User(email='test@email.com') u1.save() - u2 = TopGym_User(email='test2@email.com') + u2 = TopGym_User(email='test2@email.com') u2.save() + u3 = TopGym_User(email='test3@email.com') + u3.save() + #test u1 and u2 arent yet friends + self.assertFalse(Friends.objects.filter(friend_1=u1, friend_2=u2).exists()) + + #make u1 and u2 friends + friend1 = Friends(friend_1=u1, friend_2=u2) + friend1.save() + + #test that u1 and u2 are now friends + self.assertTrue(Friends.objects.filter(friend_1=u1, friend_2=u2).exists()) + + #test that u1 and u3 are not friends + self.assertFalse(Friends.objects.filter(friend_1=u1, friend_2=u3).exists()) + + #make u1 and u3 friends + friend2 = Friends(friend_1=u1, friend_2=u3) + friend2.save() + + #test that u1 and u3 are friends + self.assertTrue(Friends.objects.filter(friend_1=u1, friend_2=u3).exists()) + + #test that u2 and u3 are not friends + self.assertFalse(Friends.objects.filter(friend_1=u2, friend_2=u3).exists()) + + def test_workout_routine(self): + exercise1 = Exercise(name='Exercise 1', description='Exercise description', video_link='http://example.com') + exercise1.save() + exercise2 = Exercise(name='Push-ups', description='Push-ups description', video_link='https://www.youtube.com/watch?v=_l3ySVKYVJ8') + exercise2.save() + exercise3 = Exercise(name='Sit-ups', description='Sit-ups description', video_link='http://example.com') + exercise3.save() + + u1 = TopGym_User(email='test@email.com') + u1.save() + u2 = TopGym_User(email='test2@email.com') + u2.save() + + #workout_routine made by u1, has exercise 1 & 2 + workout_routine = WorkoutRoutine(workout_id=1, created_by=u1, name='Workout 1', description='Workout description')#, total_completions= + workout_routine.save() + workout_exercise = WorkoutExercise(exercise_id=exercise1, workout_id=workout_routine, exercise_order=1) + workout_exercise.save() + workout_exercise2 = WorkoutExercise(exercise_id=exercise2, workout_id=workout_routine, exercise_order=2) + workout_exercise2.save() + + #workout_routine2 made by u2, has exercise 3 + workout_routine2 = WorkoutRoutine(workout_id=2, created_by=u2, name='Workout 2', description='Example description')#, total_completions= + workout_routine2.save() + workout_exercise3 = WorkoutExercise(exercise_id=exercise3, workout_id=workout_routine2, exercise_order=1) + workout_exercise3.save() + + #workout_routine by u1 is completed + completed_workout = CompletedWorkout(user=u1, workout_id=workout_routine) + completed_workout.save() + set = Set(set_id=1, CompletedWorkout_id=completed_workout, Exercise_id=exercise1, reps=10, weightage=20) + set.save() + set2 = Set(set_id=2, CompletedWorkout_id=completed_workout, Exercise_id=exercise2, reps=15, weightage=15) + set2.save() + + + #subscribe u1 to the workout_routine that it made + user_workout_routine = User_WorkoutRoutine(user_id=u1, workout_routine_id=workout_routine) + user_workout_routine.save() + + #subscribe u2 to workout_routine2 that it made + user_workout_routine2 = User_WorkoutRoutine(user_id=u2, workout_routine_id=workout_routine2) + user_workout_routine2.save() + + #subscribe u2 to u1's workout_routine + user_workout_routine3 = User_WorkoutRoutine(user_id=u2, workout_routine_id=workout_routine) + user_workout_routine3.save() + + + #test that u1 is subscribed the workout_routine + self.assertTrue(User_WorkoutRoutine.objects.filter(user_id=u1, workout_routine_id=workout_routine).exists()) + + #test that u2 is subscribed the workout_routine + self.assertTrue(User_WorkoutRoutine.objects.filter(user_id=u2, workout_routine_id=workout_routine).exists()) + + #test that u2 is subscribed the workout_routine2 + self.assertTrue(User_WorkoutRoutine.objects.filter(user_id=u2, workout_routine_id=workout_routine2).exists()) + + #test that u1 is not subscribed the workout_routine2 + self.assertFalse(User_WorkoutRoutine.objects.filter(user_id=u1, workout_routine_id=workout_routine2).exists()) + + + #test that exercise1 is in workout_routine + self.assertTrue(WorkoutExercise.objects.filter(exercise_id=exercise1, workout_id=workout_routine).exists()) + + #test that exercise2 is in workout_routine + self.assertTrue(WorkoutExercise.objects.filter(exercise_id=exercise2, workout_id=workout_routine).exists()) + + #test that exercise3 is in workout_routine2 + self.assertTrue(WorkoutExercise.objects.filter(exercise_id=exercise3, workout_id=workout_routine2).exists()) + + #test that exercise3 is not in workout_routine + self.assertFalse(WorkoutExercise.objects.filter(exercise_id=exercise3, workout_id=workout_routine).exists()) + + + #test that workout_routine is completed + self.assertTrue(CompletedWorkout.objects.filter(workout_id=workout_routine).exists()) + + #test that workout_routine2 is not completed + self.assertFalse(CompletedWorkout.objects.filter(workout_id=workout_routine2).exists()) + + # friend = Friends(friend_1=u1, friend_2=u2) + # friend.save() + # user_stats = UserStats(user=u1, weight_lifted=100.5, consecutive_weeks=3, total_points=50) + # user_stats.save() + # question = Question(question_id=1, question='Random question?') + # question.save() + # answer = Answer(user=u1, question=question, answer='Example answer') + # answer.save() + # user_survey = UserSurvey(user=u1) + # user_survey.save() + + - def test_save_users(self): - db_count = TopGym_User.objects.all().count() - user = TopGym_User(email='test3@email.com') - user.save() - self.assertEqual(db_count+1, TopGym_User.objects.all().count())