Commit f13df338 by Michael Frey Committed by GitHub

Merge pull request #924 from edx/mjfrey/SOL-2048

Use Babel directly to format benefit value.
parents b6183628 b6f8eddf
from decimal import Decimal from decimal import Decimal
import ddt import ddt
from babel.numbers import format_currency
from django.conf import settings
from django.utils.translation import get_language, to_locale
from oscar.core.loading import get_model from oscar.core.loading import get_model
from oscar.templatetags.currency_filters import currency
from oscar.test.factories import * # pylint:disable=wildcard-import,unused-wildcard-import from oscar.test.factories import * # pylint:disable=wildcard-import,unused-wildcard-import
from ecommerce.courses.tests.factories import CourseFactory from ecommerce.courses.tests.factories import CourseFactory
...@@ -33,7 +36,10 @@ class UtilTests(CourseCatalogTestMixin, TestCase): ...@@ -33,7 +36,10 @@ class UtilTests(CourseCatalogTestMixin, TestCase):
self.assertEqual(benefit_value, '35%') self.assertEqual(benefit_value, '35%')
benefit_value = format_benefit_value(self.value_benefit) benefit_value = format_benefit_value(self.value_benefit)
self.assertEqual(benefit_value, currency(self.seat_price - 10)) expected_benefit = format_currency(
Decimal((self.seat_price - 10)), settings.OSCAR_DEFAULT_CURRENCY, format=u'#,##0.00',
locale=to_locale(get_language()))
self.assertEqual(benefit_value, '${expected_benefit}'.format(expected_benefit=expected_benefit))
@ddt.data( @ddt.data(
('1.0', '1'), ('1.0', '1'),
......
"""Offer Utility Methods. """ """Offer Utility Methods. """
from decimal import Decimal from decimal import Decimal
from django.utils.translation import ugettext_lazy as _ from babel.numbers import format_currency
from django.conf import settings
from django.utils.translation import get_language, to_locale, ugettext_lazy as _
from oscar.core.loading import get_model from oscar.core.loading import get_model
from oscar.templatetags.currency_filters import currency
Benefit = get_model('offer', 'Benefit') Benefit = get_model('offer', 'Benefit')
...@@ -35,5 +37,8 @@ def format_benefit_value(benefit): ...@@ -35,5 +37,8 @@ def format_benefit_value(benefit):
if benefit.type == Benefit.PERCENTAGE: if benefit.type == Benefit.PERCENTAGE:
benefit_value = _('{benefit_value}%'.format(benefit_value=benefit_value)) benefit_value = _('{benefit_value}%'.format(benefit_value=benefit_value))
else: else:
benefit_value = _('{benefit_value}'.format(benefit_value=currency(benefit_value))) converted_benefit = format_currency(
Decimal(benefit.value), settings.OSCAR_DEFAULT_CURRENCY, format=u'#,##0.00',
locale=to_locale(get_language()))
benefit_value = _('${benefit_value}'.format(benefit_value=converted_benefit))
return benefit_value return benefit_value
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment