def test_get_reviews_with_am_unautenthicated_user(self): factory = APIRequestFactory() view = ReviewViewSet.as_view({"get": "list"}) ReviewFactory.create_batch(3) request = factory.get("/reviews") response = view(request) self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED, "Must return 401 unauthorized on an unauthenticate request")
def test_review_not_visible_to_reviewer_only(admin_api_client, admin_user): external_review = ReviewFactory() user_review = ReviewFactory(reviewer=admin_user) external_review_response = admin_api_client.get( reverse('v1:reviews-detail', kwargs={'pk': external_review.pk})) user_review_response = admin_api_client.get( reverse('v1:reviews-detail', kwargs={'pk': user_review.pk})) assert external_review_response.status_code == status.HTTP_404_NOT_FOUND assert user_review_response.status_code == status.HTTP_200_OK
def test_payment_direction(self): review = ReviewFactory(is_sender_principal=True) self.assertIn('custom-arrow-right', self.admin.payment_direction(review)) review = ReviewFactory(is_sender_principal=False) self.assertIn('custom-arrow-left', self.admin.payment_direction(review)) review = ReviewFactory(is_sender_principal=None) response = self.admin.payment_direction(review).split(' ') self.assertIn('custom-arrow-left', response[0]) self.assertIn('custom-arrow-right', response[1])
def test_get_all_reviews_from_an_autenthicated_user(self): factory = APIRequestFactory() view = ReviewViewSet.as_view({"get": "list"}) user = UserFactory() user2 = UserFactory() ReviewFactory.create_batch(3, reviewer=user) ReviewFactory(reviewer=user2) request = factory.get("/reviews") force_authenticate(request, user=user, token=user.auth_token) response = view(request) for review in response.data: self.assertEqual(review["reviewer"], user.id, "The review creator must match the user") self.assertEqual(response.status_code, status.HTTP_200_OK, "Must return 200 OK on a successful request")
class SendReplyToStudentEmailTaskTest(APITestCase): """ Test the task of SendCommentToOrganizerEmailTask """ def setUp(self): self.review = ReviewFactory() @mock.patch('utils.tasks.SendEmailTaskMixin.send_mail') def test_run(self, send_mail): send_mail.return_value = [{ 'email': self.review.author.user.email, 'status': 'sent', 'reject_reason': None, }] task = SendReplyToStudentEmailTask() task_id = task.delay(review_id=self.review.id) context = { 'name': self.review.author.user.first_name, 'organizer': self.review.activity.organizer.name, 'reply': self.review.reply, 'url': self.review.get_student_frontend_url(), } self.assertTrue( EmailTaskRecord.objects.filter( task_id=task_id, to=self.review.author.user.email, status='sent', data=context, template_name='reviews/email/send_reply_to_student.html'). exists())
def create_reviews(self): self.stdout.write('Creando reviews') reviews = list() quantity = self.get_quantity() orders = self.get_sample(self.orders, quantity) for order in orders: reviews.append( ReviewFactory(activity=order.calendar.activity, author=order.student)) return reviews
def handle(self, *args, **options): combinations = [] try: reviews_count = options['reviews_count'] if options['generate_profiles']: ReviewFactory.create_batch(reviews_count) return profiles = list(Profile.objects.all()) if not profiles: raise CommandError( 'You need to generate profiles first. Use `generateprofiles` command.' ) retries = 0 while len(combinations) < reviews_count and retries < MAX_RETRIES: retries += 1 created_by, sent_to = random.sample(profiles, 2) targeted_combinition = ( created_by.id, sent_to.id, ) if targeted_combinition not in combinations: ReviewFactory(created_by=created_by, sent_to=sent_to) combinations.append(targeted_combinition) retries = 0 if len(combinations) < reviews_count: self.stdout.write( f'{len(combinations)} reviews generated. Unable to generate more reviews. ' f'You need to generate more profiles first. ' f'Truncate your database and use `generateprofiles` command.' ) except IntegrityError as ie: raise CommandError( "Truncate your database and run this command again", ie) except Exception as ex: raise CommandError('Unable to generate dummy profiles.', ex)
def test_change_replied_at(self): """ Shouldn't be able to change the replied_at date if is set """ replied_at = datetime.datetime(2015, 11, 8, 3, 30, 0, tzinfo=utc) review = ReviewFactory(reply='Replied', replied_at=replied_at) serializer = ReviewSerializer(review, data={'rating': 2}, partial=True) serializer.is_valid(raise_exception=True) serializer.save() review = Review.objects.get(id=review.id) self.assertEqual(review.replied_at, replied_at)
def test_unique_composite_key_fail(self): created_by = ProfileFactory() sent_to = ProfileFactory() with self.assertRaises(IntegrityError): for i in range(2): ReviewFactory(created_by=created_by, sent_to=sent_to)
def test_sender_eq_receiver_fail(self): profile = ProfileFactory() with self.assertRaises(ValidationError): ReviewFactory(created_by=profile, sent_to=profile)
def setUp(self): self.review = ReviewFactory()
def setUp(self): # Arrangement self.review = ReviewFactory(rating=3) self.email = '*****@*****.**'
def test_rating_integer(self): review = ReviewFactory() self.assertIsInstance(self.admin.get_rating(review), int)