Commit 23c7361a by Renzo Lucioni

Respect partner when updating organizations

An organization key is only unique in combination with a partner.

LEARNER-583
parent 0c502bdb
...@@ -63,7 +63,7 @@ class OrganizationsApiDataLoader(AbstractDataLoader): ...@@ -63,7 +63,7 @@ class OrganizationsApiDataLoader(AbstractDataLoader):
'logo_image_url': logo, 'logo_image_url': logo,
}) })
Organization.objects.update_or_create(key__iexact=key, defaults=defaults) Organization.objects.update_or_create(key__iexact=key, partner=self.partner, defaults=defaults)
logger.info('Processed organization "%s"', key) logger.info('Processed organization "%s"', key)
......
...@@ -123,6 +123,24 @@ class OrganizationsApiDataLoaderTests(ApiClientTestMixin, DataLoaderTestMixin, T ...@@ -123,6 +123,24 @@ class OrganizationsApiDataLoaderTests(ApiClientTestMixin, DataLoaderTestMixin, T
# 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()
@responses.activate
def test_ingest_respects_partner(self):
"""
Existing organizations with the same key but linked to different partners
shouldn't cause organization data loading to fail.
"""
api_data = self.mock_api()
key = api_data[1]['short_name']
OrganizationFactory(key=key, partner=self.partner)
OrganizationFactory(key=key)
assert Organization.objects.count() == 2
self.loader.ingest()
assert Organization.objects.count() == len(api_data) + 1
@ddt.ddt @ddt.ddt
class CoursesApiDataLoaderTests(ApiClientTestMixin, DataLoaderTestMixin, TestCase): class CoursesApiDataLoaderTests(ApiClientTestMixin, DataLoaderTestMixin, TestCase):
......
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