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
from ecommerce.programs.custom import class_path, create_condition
Benefit = get_model('offer', 'Benefit')
Condition = get_model('offer', 'Condition')
ConditionalOffer = get_model('offer', 'ConditionalOffer')
Range = get_model('offer', 'Range')
......@@ -95,8 +94,12 @@ class EnterpriseOfferForm(forms.ModelForm):
enterprise_customer = get_enterprise_customer(site, enterprise_customer_uuid)
enterprise_customer_name = enterprise_customer['name']
self.instance.name = _(u'Discount provided by {enterprise_customer_name}.'.format(
enterprise_customer_name=enterprise_customer_name
# Note: the actual name is not displayed like this in the template, so it's safe to use the UUID here.
# 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.offer_type = ConditionalOffer.SITE
......
......@@ -118,7 +118,11 @@ class EnterpriseOfferFormTests(EnterpriseServiceMockMixin, TestCase):
data['enterprise_customer_catalog_uuid'],
data['benefit_value'],
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
......@@ -140,7 +144,9 @@ class EnterpriseOfferFormTests(EnterpriseServiceMockMixin, TestCase):
data['enterprise_customer_catalog_uuid'],
data['benefit_value'],
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
......@@ -164,7 +170,11 @@ class EnterpriseOfferFormTests(EnterpriseServiceMockMixin, TestCase):
data['enterprise_customer_catalog_uuid'],
data['benefit_value'],
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
......@@ -194,7 +204,11 @@ class EnterpriseOfferFormTests(EnterpriseServiceMockMixin, TestCase):
data['enterprise_customer_catalog_uuid'],
data['benefit_value'],
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):
......
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