Commit 4eaf27da by Matthew Piatetsky Committed by GitHub

Merge pull request #330 from edx/ECOM-5660

ECOM-5660 Add logo image url override for organizations
parents b9d17824 a35e9ed1
...@@ -50,11 +50,15 @@ class OrganizationsApiDataLoader(AbstractDataLoader): ...@@ -50,11 +50,15 @@ class OrganizationsApiDataLoader(AbstractDataLoader):
key = body['short_name'] key = body['short_name']
defaults = { defaults = {
'key': key, 'key': key,
'name': body['name'], 'partner': self.partner
'description': body['description'],
'logo_image_url': body['logo'],
'partner': self.partner,
} }
if not self.partner.has_marketing_site:
defaults.update({
'name': body['name'],
'description': body['description'],
'logo_image_url': body['logo']
})
Organization.objects.update_or_create(key__iexact=key, defaults=defaults) Organization.objects.update_or_create(key__iexact=key, defaults=defaults)
logger.info('Processed organization "%s"', key) logger.info('Processed organization "%s"', key)
......
...@@ -89,17 +89,23 @@ class OrganizationsApiDataLoaderTests(ApiClientTestMixin, DataLoaderTestMixin, T ...@@ -89,17 +89,23 @@ class OrganizationsApiDataLoaderTests(ApiClientTestMixin, DataLoaderTestMixin, T
) )
return bodies return bodies
def assert_organization_loaded(self, body): def assert_organization_loaded(self, body, partner_has_marketing_site=True):
""" Assert an Organization corresponding to the specified data body was properly loaded into the database. """ """ Assert an Organization corresponding to the specified data body was properly loaded into the database. """
organization = Organization.objects.get(key=AbstractDataLoader.clean_string(body['short_name'])) organization = Organization.objects.get(key=AbstractDataLoader.clean_string(body['short_name']))
self.assertEqual(organization.name, AbstractDataLoader.clean_string(body['name'])) if not partner_has_marketing_site:
self.assertEqual(organization.description, AbstractDataLoader.clean_string(body['description'])) self.assertEqual(organization.name, AbstractDataLoader.clean_string(body['name']))
self.assertEqual(organization.logo_image_url, AbstractDataLoader.clean_string(body['logo'])) self.assertEqual(organization.description, AbstractDataLoader.clean_string(body['description']))
self.assertEqual(organization.logo_image_url, AbstractDataLoader.clean_string(body['logo']))
@responses.activate @responses.activate
def test_ingest(self): @ddt.data(True, False)
def test_ingest(self, partner_has_marketing_site):
""" Verify the method ingests data from the Organizations API. """ """ Verify the method ingests data from the Organizations API. """
api_data = self.mock_api() api_data = self.mock_api()
if not partner_has_marketing_site:
self.partner.marketing_site_url_root = None
self.partner.save() # pylint: disable=no-member
self.assertEqual(Organization.objects.count(), 0) self.assertEqual(Organization.objects.count(), 0)
self.loader.ingest() self.loader.ingest()
...@@ -112,7 +118,7 @@ class OrganizationsApiDataLoaderTests(ApiClientTestMixin, DataLoaderTestMixin, T ...@@ -112,7 +118,7 @@ class OrganizationsApiDataLoaderTests(ApiClientTestMixin, DataLoaderTestMixin, T
self.assertEqual(Organization.objects.count(), expected_num_orgs) self.assertEqual(Organization.objects.count(), expected_num_orgs)
for datum in api_data: for datum in api_data:
self.assert_organization_loaded(datum) self.assert_organization_loaded(datum, partner_has_marketing_site)
# Verify multiple calls to ingest data do NOT result in data integrity errors. # Verify multiple calls to ingest data do NOT result in data integrity errors.
self.loader.ingest() self.loader.ingest()
......
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