Skip to content

Commit

Permalink
Fixing Mapping creation without from/to source
Browse files Browse the repository at this point in the history
  • Loading branch information
snyaggarwal committed Jul 7, 2022
1 parent 5097a39 commit 143ecba
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 7 deletions.
18 changes: 18 additions & 0 deletions core/integration_tests/tests_mappings.py
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,24 @@ def test_post_without_to_and_from_concept_url_201(self):
self.assertEqual(mapping.to_source, concept.parent)
self.assertEqual(mapping.to_concept, concept)

response = self.client.post(
source.mappings_url,
{
"map_type": "Same As",
"from_concept_code": "foo",
"from_concept_name": "foo",
"to_concept_code": "bar",
"to_concept_name": "bar"
},
HTTP_AUTHORIZATION='Token ' + self.token,
)
self.assertEqual(response.status_code, 201)
self.assertEqual(response.data['from_concept_code'], 'foo')
self.assertEqual(response.data['from_concept_name'], 'foo')
self.assertEqual(response.data['to_concept_code'], 'bar')
self.assertEqual(response.data['to_concept_name'], 'bar')
self.assertIsNone(response.data['to_source_name'])

def test_post_using_canonical_url_201(self): # pylint: disable=too-many-statements
source = UserSourceFactory(user=self.user, mnemonic='source')
response = self.client.post(
Expand Down
15 changes: 8 additions & 7 deletions core/mappings/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -353,13 +353,14 @@ def get_source_info(parent_uri, child_uri, existing_version, concept):
self.to_source_version, self.to_source_url = get_source_info(
to_source_url, to_concept_url, self.to_source_version, to_concept
)

self.to_source = Source.objects.filter(
models.Q(uri=self.to_source_url) | models.Q(canonical_url=self.to_source_url)
).filter(version=HEAD).first()
self.from_source = Source.objects.filter(
models.Q(uri=self.from_source_url) | models.Q(canonical_url=self.from_source_url)
).filter(version=HEAD).first()
if self.to_source_url:
self.to_source = Source.objects.filter(
models.Q(uri=self.to_source_url) | models.Q(canonical_url=self.to_source_url)
).filter(version=HEAD).first()
if self.from_source_url:
self.from_source = Source.objects.filter(
models.Q(uri=self.from_source_url) | models.Q(canonical_url=self.from_source_url)
).filter(version=HEAD).first()

def is_existing_in_parent(self):
return self.parent.mappings_set.filter(mnemonic__exact=self.mnemonic).exists()
Expand Down

0 comments on commit 143ecba

Please sign in to comment.