Пример #1
0
class DeleteTestSerializerTest(TestCase):
    def setUp(self) -> None:
        self.test = TestSetFactory()
        self.user = CustomUserFactory(tests=[self.test])
        self.data = {
            'tests': [self.test.pk]
        }
        self.serializer = DeleteTestSerializer
        self.request = RequestFactory()
        self.request.user = self.user
        self.context = {
            "request": self.request,
        }

    def test_valid_data(self):
        self.assertEqual(self.user.tests.count(), 1)
        self.assertEqual(self.user.tests.first(), self.test)
        serializer = self.serializer(instance=self.user, data=self.data, context=self.context)
        self.assertTrue(serializer.is_valid())
        serializer.save()
        self.user.refresh_from_db()
        self.assertEqual(self.user.tests.count(), 0)

    def test_invalid_data_test_not_exists(self):
        self.data['tests'] = [TestSet.objects.count() + 1]
        self.assertEqual(self.user.tests.count(), 1)
        serializer = self.serializer(instance=self.user, data=self.data, context=self.context)
        self.assertFalse(serializer.is_valid())
        self.assertIn('tests', serializer.errors)
        self.assertEqual(serializer.errors['tests'][0].code, 'does_not_exist')
        self.assertEqual(self.user.tests.count(), 1)
Пример #2
0
 def setUp(self) -> None:
     self.owner = CustomUserFactory()
     self.user = CustomUserFactory()
     self.client = APIClient()
     self.data = {
         'club': 'test_club'
     }
Пример #3
0
class DetailUpdateUserApiViewTest(ViewTestMixin, TestCase, APIClient):
    def setUp(self) -> None:
        self.tmp_file = self.crete_image()
        self.data = {
            'club': 'new_club',
            'type': ATHLETE,
        }
        self.user = CustomUserFactory(profile_photo=self.tmp_file.name)
        self.client = APIClient()
        self.login(self.user)
        self.url = reverse('user_detail', kwargs={'pk': self.user.pk})

    def test_valid_data(self):
        resp = self.client.patch(self.url, data=self.data, format='multipart')
        self.assert_resp_ok(resp)
        self.user.refresh_from_db()
        self.assertEqual(self.user.club, self.data['club'])
        self.assertEqual(self.user.type, self.data['type'])

    def test_invalid_type(self):
        self.data['type'] = 'test'
        resp = self.client.patch(self.url, data=self.data, format='json')
        self.assertEqual(resp.status_code, 400)
        self.assertIn('type', str(resp.content))

    def test_empty_club(self):
        self.data['club'] = ''
        resp = self.client.patch(self.url, data=self.data, format='json')
        self.assertEqual(resp.status_code, 400)
        self.assertIn('club', str(resp.content))
Пример #4
0
class IsOwnerOrReadOnlyTest(ViewTestMixin, TestCase, APIClient):
    def setUp(self) -> None:
        self.owner = CustomUserFactory()
        self.user = CustomUserFactory()
        self.client = APIClient()
        self.data = {
            'club': 'test_club'
        }

    def test_patch_owner(self):
        self.login(self.owner)
        resp = self.client.patch(reverse('user_detail', kwargs={'pk': self.owner.pk}), data=self.data)
        self.assert_resp_ok(resp)
        self.owner.refresh_from_db()
        self.assertEqual(self.owner.club, self.data['club'])

    def test_patch_user(self):
        self.login(self.user)
        resp = self.client.patch(reverse('user_detail', kwargs={'pk': self.owner.pk}), data=self.data)
        self.assertEqual(resp.status_code, 403)

    def test_get_user(self):
        self.login(self.user)
        resp = self.client.get(reverse('user_detail', kwargs={'pk': self.owner.pk}))
        result = json.loads(resp.content)
        self.assert_resp_ok(resp)
        self.assertEqual(result['username'], self.owner.username)
Пример #5
0
 def setUp(self) -> None:
     self.owner = CustomUserFactory()
     self.user = CustomUserFactory()
     self.client = APIClient()
     self.test = TestSetFactory(creator=self.owner)
     self.exercise = ExerciseFactory()
     self.data = {
         'title': 'New title'
     }
Пример #6
0
 def setUp(self) -> None:
     self.tmp_file = self.crete_image()
     self.data = {
         'club': 'new_club',
         'type': ATHLETE,
     }
     self.user = CustomUserFactory(profile_photo=self.tmp_file.name)
     self.client = APIClient()
     self.login(self.user)
     self.url = reverse('user_detail', kwargs={'pk': self.user.pk})
Пример #7
0
 def setUp(self) -> None:
     self.test = TestSetFactory()
     self.user = CustomUserFactory(tests=[self.test])
     self.data = {
         'tests': [self.test.pk]
     }
     self.serializer = DeleteTestSerializer
     self.request = RequestFactory()
     self.request.user = self.user
     self.context = {
         "request": self.request,
     }
Пример #8
0
 def setUp(self) -> None:
     self.user = CustomUserFactory()
     self.test_campus = TestSetFactory(test_type=CAMPUS_BOARD, creator=self.user)
     self.campus_exercise = ExerciseFactory(exercise_type=CAMPUS_BOARD, creator=self.user)
     self.hangboard_exercise = ExerciseFactory(exercise_type=HANGBOARD, creator=self.user)
     self.data = {'exercises': [self.campus_exercise.pk]}
     self.login(self.user)
     self.url = reverse('add_exercise', kwargs={'pk': self.test_campus.pk})
Пример #9
0
 def setUp(self) -> None:
     self.user = CustomUserFactory()
     self.data = {
         'title': 'Test title',
         'test_type': 'campus_board'
     }
     self.login(self.user)
     self.url = reverse('campus_tests_list')
Пример #10
0
 def test_login(self):
     user = CustomUserFactory(username='******', password='******')
     resp = self.client.post(reverse('rest_login'),
                             data={
                                 'username': '******',
                                 'password': '******'
                             })
     self.assert_resp_ok(resp)
     result = json.loads(resp.content)
     self.assertEqual(result['key'], user.auth_token.key)
Пример #11
0
 def setUp(self) -> None:
     self.serializer = TestSetSerializer
     self.user = CustomUserFactory()
     self.data = {
         'title': 'Test title',
         'creator': self.user.pk,
     }
     self.request = RequestFactory()
     self.request.user = self.user
     self.context = {
         "request": self.request,
     }
Пример #12
0
 def setUp(self) -> None:
     self.serializer = ExerciseSerializer
     self.user = CustomUserFactory()
     self.client = APIClient
     self.data = {
         'title': 'Test title exercise',
         'creator': self.user.pk,
     }
     self.request = RequestFactory()
     self.request.user = self.user
     self.context = {
         "request": self.request,
     }
Пример #13
0
 def setUp(self):
     self.athlete_1 = CustomUserFactory()
     self.athlete_2 = CustomUserFactory()
     self.client = APIClient()