def format_benefit_value(benefit): """ Format benefit value for display based on the benefit type Arguments: benefit (Benefit): Benefit to be displayed Returns: benefit_value (str): String value containing formatted benefit value and type. """ # TODO: Find a better way to format benefit value so we can remove this import. # Techdebt ticket: LEARNER-1317 # Import is here because of a circular dependency. from ecommerce.programs.constants import BENEFIT_PROXY_CLASS_MAP benefit_value = _remove_exponent_and_trailing_zeros( Decimal(str(benefit.value))) benefit_type = benefit.type or BENEFIT_PROXY_CLASS_MAP[benefit.proxy_class] if benefit_type == Benefit.PERCENTAGE: benefit_value = _( '{benefit_value}%'.format(benefit_value=benefit_value)) else: converted_benefit = add_currency(Decimal(benefit.value)) benefit_value = _( '${benefit_value}'.format(benefit_value=converted_benefit)) return benefit_value
def format_benefit_value(benefit): """ Format benefit value for display based on the benefit type Arguments: benefit (Benefit): Benefit to be displayed Returns: benefit_value (str): String value containing formatted benefit value and type. """ benefit_value = _remove_exponent_and_trailing_zeros( Decimal(str(benefit.value))) benefit_type = benefit.type or getattr(benefit.proxy(), 'benefit_class_type', None) if benefit_type == Benefit.PERCENTAGE: benefit_value = _( '{benefit_value}%'.format(benefit_value=benefit_value)) else: converted_benefit = add_currency(Decimal(benefit.value)) currency_symbol = settings.OSCAR_DEFAULT_CURRENCY_SYMBOL benefit_value = _('{currency_symbol}{benefit_value}'.format( currency_symbol=currency_symbol, benefit_value=converted_benefit)) return benefit_value
def test_format_benefit_value(self): """ format_benefit_value(benefit) should format benefit value based on benefit type """ benefit_value = format_benefit_value(self.percentage_benefit) self.assertEqual(benefit_value, '35%') benefit_value = format_benefit_value(self.value_benefit) expected_benefit = add_currency(Decimal((self.seat_price - 10))) self.assertEqual(benefit_value, '${expected_benefit}'.format(expected_benefit=expected_benefit))
def test_format_benefit_value(self): """ format_benefit_value(benefit) should format benefit value based on benefit type """ benefit_value = format_benefit_value(self.percentage_benefit) self.assertEqual(benefit_value, '35%') benefit_value = format_benefit_value(self.value_benefit) expected_benefit = add_currency(Decimal((self.seat_price - 10))) self.assertEqual(benefit_value, '${expected_benefit}'.format(expected_benefit=expected_benefit))
def test_format_program_benefit_value(self): """ format_benefit_value(program_benefit) should format benefit value based on proxy class. """ percentage_benefit = PercentageDiscountBenefitWithoutRangeFactory() benefit_value = format_benefit_value(percentage_benefit) self.assertEqual(benefit_value, '{}%'.format(percentage_benefit.value)) absolute_benefit = AbsoluteDiscountBenefitWithoutRangeFactory() benefit_value = format_benefit_value(absolute_benefit) expected_value = add_currency(Decimal(absolute_benefit.value)) self.assertEqual(benefit_value, '${}'.format(expected_value))
def format_benefit_value(benefit): """ Format benefit value for display based on the benefit type Arguments: benefit (Benefit): Benefit to be displayed Returns: benefit_value (str): String value containing formatted benefit value and type. """ benefit_value = _remove_exponent_and_trailing_zeros(Decimal(str(benefit.value))) if benefit.type == Benefit.PERCENTAGE: benefit_value = _('{benefit_value}%'.format(benefit_value=benefit_value)) else: converted_benefit = add_currency(Decimal(benefit.value)) benefit_value = _('${benefit_value}'.format(benefit_value=converted_benefit)) return benefit_value
def format_benefit_value(benefit): """ Format benefit value for display based on the benefit type Arguments: benefit (Benefit): Benefit to be displayed Returns: benefit_value (str): String value containing formatted benefit value and type. """ benefit_value = _remove_exponent_and_trailing_zeros(Decimal(str(benefit.value))) benefit_type = get_benefit_type(benefit) if benefit_type == Benefit.PERCENTAGE: benefit_value = _('{benefit_value}%'.format(benefit_value=benefit_value)) else: converted_benefit = add_currency(Decimal(benefit.value)) benefit_value = _('${benefit_value}'.format(benefit_value=converted_benefit)) return benefit_value
def format_benefit_value(benefit): """ Format benefit value for display based on the benefit type Arguments: benefit (Benefit): Benefit to be displayed Returns: benefit_value (str): String value containing formatted benefit value and type. """ Benefit = get_model('offer', 'Benefit') benefit_value = get_quantized_benefit_value(benefit) benefit_type = get_benefit_type(benefit) if benefit_type == Benefit.PERCENTAGE: benefit_value = _('{benefit_value}%').format(benefit_value=benefit_value) else: converted_benefit = add_currency(Decimal(benefit.value)) benefit_value = _('${benefit_value}').format(benefit_value=converted_benefit) return benefit_value