def test_request_is_not_set_in_context___exception_is_raised(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        with assertRaisesRegex(self, Exception, 'Make sure you have "django.core.context_processors.request" in "TEMPLATE_CONTEXT_PROCESSORS"'):
            ratings({}, item)
    def test_request_is_not_set_in_context___exception_is_raised(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        with assertRaisesRegex(self, Exception, 'Make sure you have "django.core.context_processors.request" in "TEMPLATE_CONTEXT_PROCESSORS"'):
            ratings({}, item)
    def test_request_is_not_set_in_context___exception_is_raised(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = fake_user()

        with assertRaisesRegex(self, Exception, 'Make sure you have "django.core.context_processors.request" in your templates context processor list'):
            ratings({}, item)
    def test_template_name_is_not_set_in_param_or_context___default_is_used_as_template_name(self, get_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = fake_user()

        ratings({
            'request': request,
        }, item, read_only=True)

        get_mock.assert_called_once_with('star_ratings/widget.html')
Ejemplo n.º 5
0
    def test_request_is_not_set_in_context___exception_is_raised(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = fake_user()

        with assertRaisesRegex(
                self, Exception,
                'Make sure you have "django.core.context_processors.request" in your templates context processor list'
        ):
            ratings({}, item)
Ejemplo n.º 6
0
    def test_template_name_is_not_set_in_param_or_context___default_is_used_as_template_name(self, get_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = fake_user()

        ratings({
            'request': request,
        }, item, read_only=True)

        get_mock.assert_called_once_with('star_ratings/widget.html')
    def test_star_count_is_added_to_the_result(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = fake_user()

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        self.assertEqual(app_settings.STAR_RATINGS_RANGE, context['star_count'])
Ejemplo n.º 8
0
    def test_user_is_not_authenticated_with_rating_for_object___user_rating_percentage_is_none(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = AnonymousUser()

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        self.assertIsNone(context['user_rating_percentage'])
Ejemplo n.º 9
0
    def test_template_name_is_set_in_context___context_is_used_as_template_name(self, get_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = fake_user()

        ratings({
            'request': request,
            'star_ratings_template_name': 'context_template',
        }, item, read_only=True)

        get_mock.assert_called_once_with('context_template')
    def test_template_name_is_set_in_context___context_is_used_as_template_name(self, get_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = fake_user()

        ratings({
            'request': request,
            'star_ratings_template_name': 'context_template',
        }, item, read_only=True)

        get_mock.assert_called_once_with('context_template')
    def test_request_user_is_added_to_the_result(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = fake_user()

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        self.assertEqual(request.user, context['user'])
Ejemplo n.º 12
0
    def test_icon_width_is_not_set___icon_height_is_32(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = fake_user()

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        self.assertEqual(32, context['icon_width'])
Ejemplo n.º 13
0
    def test_star_count_is_added_to_the_result(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = fake_user()

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        self.assertEqual(app_settings.STAR_RATINGS_RANGE, context['star_count'])
    def test_user_is_not_authenticated_with_rating_for_object___user_rating_percentage_is_none(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = AnonymousUser()

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        self.assertIsNone(context['user_rating_percentage'])
Ejemplo n.º 15
0
    def test_request_user_is_added_to_the_result(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = fake_user()

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        self.assertEqual(request.user, context['user'])
    def test_icon_width_is_not_set___icon_height_is_32(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = fake_user()

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        self.assertEqual(32, context['icon_width'])
    def test_id_is_a_uid_with_dsr_prefix(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = fake_user()

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        self.assertTrue(context['id'].startswith('dsr'))
        self.assertIsNotNone(int(context['id'][3:], 16))
    def test_icon_width_is_set___icon_height_is_correct(self, width):
        with patch('django.template.Template.render') as render_mock:
            item = mommy.make(Foo)

            request = RequestFactory().get('/')
            request.user = fake_user()

            ratings({
                'request': request,
            }, item, icon_width=width)

            context = render_mock.call_args_list[0][0][0]
            self.assertEqual(width, context['icon_width'])
Ejemplo n.º 19
0
    def test_read_only_is_false_user_is_not_authenticated_anon_rating_is_true___editable_is_true(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = AnonymousUser()

        ratings({
            'request': request,
        }, item, read_only=False)

        context = render_mock.call_args_list[0][0][0]
        self.assertTrue(context['editable'])
        self.assertFalse(context['read_only'])
    def test_read_only_is_false_user_is_not_authenticated_anon_rating_is_true___editable_is_true(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = AnonymousUser()

        ratings({
            'request': request,
        }, item, read_only=False)

        context = render_mock.call_args_list[0][0][0]
        self.assertTrue(context['editable'])
        self.assertFalse(context['read_only'])
Ejemplo n.º 21
0
    def test_icon_width_is_set___icon_height_is_correct(self, width):
        with patch('django.template.Template.render') as render_mock:
            item = mommy.make(Foo)

            request = RequestFactory().get('/')
            request.user = fake_user()

            ratings({
                'request': request,
            }, item, icon_width=width)

            context = render_mock.call_args_list[0][0][0]
            self.assertEqual(width, context['icon_width'])
Ejemplo n.º 22
0
    def test_id_is_a_uid_with_dsr_prefix(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = fake_user()

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        self.assertTrue(context['id'].startswith('dsr'))
        self.assertIsNotNone(int(context['id'][3:], 16))
Ejemplo n.º 23
0
    def test_read_only_is_set_to_true___editable_is_false(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = fake_user()

        ratings({
            'request': request,
        }, item, read_only=True)

        context = render_mock.call_args_list[0][0][0]
        self.assertFalse(context['editable'])
        self.assertTrue(context['read_only'])
    def test_read_only_is_set_to_true___editable_is_false(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = fake_user()

        ratings({
            'request': request,
        }, item, read_only=True)

        context = render_mock.call_args_list[0][0][0]
        self.assertFalse(context['editable'])
        self.assertTrue(context['read_only'])
Ejemplo n.º 25
0
    def test_item_is_not_yet_rated___rating_object_for_item_is_returned(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = fake_user()

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        print(context)
        self.assertIsInstance(context['rating'], get_star_ratings_rating_model())
        self.assertEqual(item, context['rating'].content_object)
    def test_item_is_rated___rating_object_for_item_is_returned(self, render_mock):
        item = mommy.make(Foo)

        rating = get_star_ratings_rating_model().objects.for_instance(item)

        request = RequestFactory().get('/')
        request.user = fake_user()

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        self.assertEqual(rating, context['rating'])
Ejemplo n.º 27
0
    def test_item_is_rated___rating_object_for_item_is_returned(self, render_mock):
        item = mommy.make(Foo)

        rating = get_star_ratings_rating_model().objects.for_instance(item)

        request = RequestFactory().get('/')
        request.user = fake_user()

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        self.assertEqual(rating, context['rating'])
Ejemplo n.º 28
0
    def test_user_is_authenticated_without_rating_for_object___user_rating_is_none(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')

        request.user = get_user_model().objects.create_user(username='******', password='******')
        self.client.login(username='******', password='******')

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        self.assertIsNone(context['user_rating'])
    def test_user_is_authenticated_without_rating_for_object___user_rating_is_none(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')

        request.user = get_user_model().objects.create_user(username='******', password='******')
        self.client.login(username='******', password='******')

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        self.assertIsNone(context['user_rating'])
    def test_item_is_not_yet_rated___rating_object_for_item_is_returned(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = fake_user()

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        print(context)
        self.assertIsInstance(context['rating'], get_star_ratings_rating_model())
        self.assertEqual(item, context['rating'].content_object)
    def test_user_is_authenticated_with_rating_for_object___user_rating_for_user_is_returned(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = get_user_model().objects.create_user(username='******', password='******')
        self.client.login(username='******', password='******')

        rating = get_star_ratings_rating_model().objects.rate(item, 3, request.user)
        user_rating = UserRating.objects.get(rating=rating, user=request.user)

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        self.assertEqual(user_rating, context['user_rating'])
Ejemplo n.º 32
0
    def test_user_is_authenticated_with_rating_for_object___user_rating_for_user_is_returned(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = get_user_model().objects.create_user(username='******', password='******')
        self.client.login(username='******', password='******')

        rating = get_star_ratings_rating_model().objects.rate(item, 3, request.user)
        user_rating = UserRating.objects.get(rating=rating, user=request.user)

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        self.assertEqual(user_rating, context['user_rating'])
    def test_user_is_authenticated_with_rating_for_object___user_rating_percentage_for_user_is_returned(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = get_user_model().objects.create_user(username='******', password='******')
        self.client.login(username='******', password='******')

        rating = get_star_ratings_rating_model().objects.rate(item, 3, request.user)
        user_rating = UserRating.objects.get(rating=rating, user=request.user)

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        expected_avg = 100 * (user_rating.score / Decimal(app_settings.STAR_RATINGS_RANGE))
        self.assertEqual(expected_avg, context['user_rating_percentage'])
Ejemplo n.º 34
0
    def test_user_is_authenticated_with_rating_for_object___user_rating_percentage_for_user_is_returned(self, render_mock):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = get_user_model().objects.create_user(username='******', password='******')
        self.client.login(username='******', password='******')

        rating = get_star_ratings_rating_model().objects.rate(item, 3, request.user)
        user_rating = UserRating.objects.get(rating=rating, user=request.user)

        ratings({
            'request': request,
        }, item)

        context = render_mock.call_args_list[0][0][0]
        expected_avg = 100 * (user_rating.score / Decimal(app_settings.STAR_RATINGS_RANGE))
        self.assertEqual(expected_avg, context['user_rating_percentage'])
    def test_several_ratings_are_made___percentage_is_correct_in_result(self, scores):
        with patch('django.template.Template.render') as render_mock:
            item = mommy.make(Foo)

            request = RequestFactory().get('/')
            request.user = fake_user()

            for score in scores:
                get_star_ratings_rating_model().objects.rate(item, score, mommy.make(get_user_model()))

            rating = get_star_ratings_rating_model().objects.for_instance(item)

            ratings({
                'request': request,
            }, item)

            context = render_mock.call_args_list[0][0][0]
            expected_avg = 100 * (rating.average / Decimal(app_settings.STAR_RATINGS_RANGE))
            self.assertEqual(expected_avg, context['percentage'])
Ejemplo n.º 36
0
    def test_several_ratings_are_made___percentage_is_correct_in_result(self, scores):
        with patch('django.template.Template.render') as render_mock:
            item = mommy.make(Foo)

            request = RequestFactory().get('/')
            request.user = fake_user()

            for score in scores:
                get_star_ratings_rating_model().objects.rate(item, score, mommy.make(get_user_model()))

            rating = get_star_ratings_rating_model().objects.for_instance(item)

            ratings({
                'request': request,
            }, item)

            context = render_mock.call_args_list[0][0][0]
            expected_avg = 100 * (rating.average / Decimal(app_settings.STAR_RATINGS_RANGE))
            self.assertEqual(expected_avg, context['percentage'])
    def test_request_user_is_added_to_the_result(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        res = ratings({
            'request': request,
        }, item)

        self.assertEqual(request.user, res['user'])
    def test_star_count_is_added_to_the_result(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        res = ratings({
            'request': request,
        }, item)

        self.assertEqual(app_settings.STAR_RATINGS_RANGE, res['star_count'])
    def test_icon_width_is_not_set___icon_height_is_32(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        res = ratings({
            'request': request,
        }, item)

        self.assertEqual(32, res['icon_width'])
    def test_icon_width_is_set___icon_height_is_correct(self, width):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        res = ratings({
            'request': request,
        }, item, icon_width=width)

        self.assertEqual(width, res['icon_width'])
    def test_icon_width_is_not_set___icon_height_is_32(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        res = ratings({
            'request': request,
        }, item)

        self.assertEqual(32, res['icon_width'])
    def test_icon_width_is_set___icon_height_is_correct(self, width):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        res = ratings({
            'request': request,
        }, item, icon_width=width)

        self.assertEqual(width, res['icon_width'])
    def test_request_user_is_added_to_the_result(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        res = ratings({
            'request': request,
        }, item)

        self.assertEqual(request.user, res['user'])
    def test_star_count_is_added_to_the_result(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        res = ratings({
            'request': request,
        }, item)

        self.assertEqual(STAR_RATINGS_RANGE, res['star_count'])
    def test_user_is_not_authenticated_with_rating_for_object___user_rating_is_none(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = AnonymousUser()

        res = ratings({
            'request': request,
        }, item)

        self.assertIsNone(res['user_rating'])
Ejemplo n.º 46
0
    def test_stars_list_is_added_to_the_result(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        res = ratings({
            'request': request,
        }, item)

        self.assertEqual(list(range(1, STAR_RATINGS_RANGE + 1)), res['stars'])
    def test_item_is_not_yet_rated___rating_object_for_item_is_returned(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        res = ratings({
            'request': request,
        }, item)

        self.assertIsInstance(res['rating'], Rating)
        self.assertEqual(item, res['rating'].content_object)
    def test_read_only_is_false_user_is_not_authenticated_anon_rating_is_true___editable_is_true(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = AnonymousUser()

        res = ratings({
            'request': request,
        }, item, read_only=False)

        self.assertTrue(res['editable'])
        self.assertFalse(res['read_only'])
    def test_id_is_a_uid_with_dsr_prefix(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        res = ratings({
            'request': request,
        }, item)

        self.assertTrue(res['id'].startswith('dsr'))
        self.assertIsNotNone(int(res['id'][3:], 16))
    def test_item_is_not_yet_rated___rating_object_for_item_is_returned(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        res = ratings({
            'request': request,
        }, item)

        self.assertIsInstance(res['rating'], Rating)
        self.assertEqual(item, res['rating'].content_object)
    def test_read_only_is_set_to_true___editable_is_false(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        res = ratings({
            'request': request,
        }, item, read_only=True)

        self.assertFalse(res['editable'])
        self.assertTrue(res['read_only'])
    def test_id_is_a_uid_with_dsr_prefix(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        res = ratings({
            'request': request,
        }, item)

        self.assertTrue(res['id'].startswith('dsr'))
        self.assertIsNotNone(int(res['id'][3:], 16))
    def test_user_is_authenticated_without_rating_for_object___user_rating_is_none(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())
        request.user.is_authenticated = lambda: True

        res = ratings({
            'request': request,
        }, item)

        self.assertIsNone(res['user_rating'])
    def test_item_is_rated___rating_object_for_item_is_returned(self):
        item = mommy.make(Foo)

        rating = Rating.objects.for_instance(item)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        res = ratings({
            'request': request,
        }, item)

        self.assertEqual(rating, res['rating'])
    def test_user_is_authenticated_without_rating_for_object___user_rating_is_none(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')

        request.user = get_user_model().objects.create_user(username='******', password='******')
        self.client.login(username='******', password='******')

        res = ratings({
            'request': request,
        }, item)

        self.assertIsNone(res['user_rating'])
    def test_item_is_rated___rating_object_for_item_is_returned(self):
        item = mommy.make(Foo)

        rating = Rating.objects.for_instance(item)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        res = ratings({
            'request': request,
        }, item)

        self.assertEqual(rating, res['rating'])
    def test_user_is_authenticated_with_rating_for_object___user_rating_for_user_is_returned(self):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())
        request.user.is_authenticated = lambda: True

        rating = Rating.objects.rate(item, 3, request.user)
        user_rating = UserRating.objects.get(rating=rating, user=request.user)

        res = ratings({
            'request': request,
        }, item)

        self.assertEqual(user_rating, res['user_rating'])
    def test_several_ratings_are_made___percentage_is_correct_in_result(self, scores):
        item = mommy.make(Foo)

        request = RequestFactory().get('/')
        request.user = mommy.make(get_user_model())

        for score in scores:
            Rating.objects.rate(item, score, mommy.make(get_user_model()))

        rating = Rating.objects.for_instance(item)

        res = ratings({
            'request': request,
        }, item)

        expected_avg = 100 * (rating.average / Decimal(STAR_RATINGS_RANGE))
        self.assertEqual(expected_avg, res['percentage'])