Commit a35e9ed1 by Matthew Piatetsky

Do not override some marketing site organization fields with lms data

parent b9d17824
...@@ -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,
'partner': self.partner
}
if not self.partner.has_marketing_site:
defaults.update({
'name': body['name'], 'name': body['name'],
'description': body['description'], 'description': body['description'],
'logo_image_url': body['logo'], 'logo_image_url': body['logo']
'partner': self.partner, })
}
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']))
if not partner_has_marketing_site:
self.assertEqual(organization.name, AbstractDataLoader.clean_string(body['name'])) self.assertEqual(organization.name, AbstractDataLoader.clean_string(body['name']))
self.assertEqual(organization.description, AbstractDataLoader.clean_string(body['description'])) self.assertEqual(organization.description, AbstractDataLoader.clean_string(body['description']))
self.assertEqual(organization.logo_image_url, AbstractDataLoader.clean_string(body['logo'])) 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