Commit 1f3ae3de by Uman Shahzad Committed by George Babey

Fix case where we get integrity error due to name.

parent 20c2e807
...@@ -12,7 +12,6 @@ from ecommerce.extensions.offer.models import OFFER_PRIORITY_ENTERPRISE ...@@ -12,7 +12,6 @@ from ecommerce.extensions.offer.models import OFFER_PRIORITY_ENTERPRISE
from ecommerce.programs.custom import class_path, create_condition from ecommerce.programs.custom import class_path, create_condition
Benefit = get_model('offer', 'Benefit') Benefit = get_model('offer', 'Benefit')
Condition = get_model('offer', 'Condition')
ConditionalOffer = get_model('offer', 'ConditionalOffer') ConditionalOffer = get_model('offer', 'ConditionalOffer')
Range = get_model('offer', 'Range') Range = get_model('offer', 'Range')
...@@ -95,8 +94,12 @@ class EnterpriseOfferForm(forms.ModelForm): ...@@ -95,8 +94,12 @@ class EnterpriseOfferForm(forms.ModelForm):
enterprise_customer = get_enterprise_customer(site, enterprise_customer_uuid) enterprise_customer = get_enterprise_customer(site, enterprise_customer_uuid)
enterprise_customer_name = enterprise_customer['name'] enterprise_customer_name = enterprise_customer['name']
self.instance.name = _(u'Discount provided by {enterprise_customer_name}.'.format( # Note: the actual name is not displayed like this in the template, so it's safe to use the UUID here.
enterprise_customer_name=enterprise_customer_name # And in fact we have to, because otherwise we face integrity errors since Oscar forces this name to be unique.
self.instance.name = _(u'Discount of type {} provided by {} for {}.'.format(
ConditionalOffer.SITE,
enterprise_customer_name,
enterprise_customer_catalog_uuid,
)) ))
self.instance.status = ConditionalOffer.OPEN self.instance.status = ConditionalOffer.OPEN
self.instance.offer_type = ConditionalOffer.SITE self.instance.offer_type = ConditionalOffer.SITE
......
...@@ -118,7 +118,11 @@ class EnterpriseOfferFormTests(EnterpriseServiceMockMixin, TestCase): ...@@ -118,7 +118,11 @@ class EnterpriseOfferFormTests(EnterpriseServiceMockMixin, TestCase):
data['enterprise_customer_catalog_uuid'], data['enterprise_customer_catalog_uuid'],
data['benefit_value'], data['benefit_value'],
data['benefit_type'], data['benefit_type'],
'Discount provided by {}.'.format(data['enterprise_customer_name']), 'Discount of type {} provided by {} for {}.'.format(
ConditionalOffer.SITE,
data['enterprise_customer_name'],
data['enterprise_customer_catalog_uuid']
),
) )
@httpretty.activate @httpretty.activate
...@@ -140,7 +144,9 @@ class EnterpriseOfferFormTests(EnterpriseServiceMockMixin, TestCase): ...@@ -140,7 +144,9 @@ class EnterpriseOfferFormTests(EnterpriseServiceMockMixin, TestCase):
data['enterprise_customer_catalog_uuid'], data['enterprise_customer_catalog_uuid'],
data['benefit_value'], data['benefit_value'],
data['benefit_type'], data['benefit_type'],
'Discount provided by Spánish Enterprise.' 'Discount of type Site provided by Spánish Enterprise for {}.'.format(
data['enterprise_customer_catalog_uuid']
),
) )
@httpretty.activate @httpretty.activate
...@@ -164,7 +170,11 @@ class EnterpriseOfferFormTests(EnterpriseServiceMockMixin, TestCase): ...@@ -164,7 +170,11 @@ class EnterpriseOfferFormTests(EnterpriseServiceMockMixin, TestCase):
data['enterprise_customer_catalog_uuid'], data['enterprise_customer_catalog_uuid'],
data['benefit_value'], data['benefit_value'],
data['benefit_type'], data['benefit_type'],
'Discount provided by {}.'.format(data['enterprise_customer_name']), 'Discount of type {} provided by {} for {}.'.format(
ConditionalOffer.SITE,
data['enterprise_customer_name'],
data['enterprise_customer_catalog_uuid']
),
) )
@httpretty.activate @httpretty.activate
...@@ -194,7 +204,11 @@ class EnterpriseOfferFormTests(EnterpriseServiceMockMixin, TestCase): ...@@ -194,7 +204,11 @@ class EnterpriseOfferFormTests(EnterpriseServiceMockMixin, TestCase):
data['enterprise_customer_catalog_uuid'], data['enterprise_customer_catalog_uuid'],
data['benefit_value'], data['benefit_value'],
data['benefit_type'], data['benefit_type'],
'Discount provided by {}.'.format(data['enterprise_customer_name']), 'Discount of type {} provided by {} for {}.'.format(
ConditionalOffer.SITE,
data['enterprise_customer_name'],
data['enterprise_customer_catalog_uuid']
),
) )
def test_create_when_conditional_offer_with_uuid_exists(self): def test_create_when_conditional_offer_with_uuid_exists(self):
......
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