Skip to content

Commit

Permalink
Update references to release component to only use release and name
Browse files Browse the repository at this point in the history
Two end-points will be affected with release component unique together
fields:
* component-groups create/update
* release-component-relationships create/update

JIRA: PDC-1007
  • Loading branch information
erichuanggit committed Sep 14, 2015
1 parent 710061d commit eca6b61
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 12 deletions.
5 changes: 2 additions & 3 deletions pdc/apps/component/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -457,16 +457,15 @@ def to_internal_value(self, data):
if not isinstance(data, dict):
raise serializers.ValidationError({'detail': "Input [%s] for ReleaseComponent must be a dict." % data})

if set(data.keys()) not in [set(['id']), set(['release', 'global_component', 'name'])]:
if set(data.keys()) not in [set(['id']), set(['release', 'name'])]:
raise serializers.ValidationError(
{'detail': "Only accept ['id'] or ['release', 'global_component', 'name']"})
{'detail': "Only accept ['id'] or ['release', 'name']"})

kwargs = dict()
if 'id' in data:
kwargs['id'] = convert_str_to_int(data.get('id'))
else:
kwargs['release__release_id'] = data.get('release')
kwargs['global_component__name'] = data.get('global_component')
kwargs['name'] = data.get('name')
try:
rc = ReleaseComponent.objects.get(**kwargs)
Expand Down
6 changes: 3 additions & 3 deletions pdc/apps/component/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -2266,7 +2266,7 @@ def test_create_group_with_components_and_different_release(self):
def test_create_group_with_components_unique_together_fields(self):
url = reverse('componentgroup-list')
data = {'group_type': 'type2', 'release': 'release-1.0', 'description': 'dd',
'components': [{'release': 'release-1.0', 'global_component': 'python', 'name': 'python27'}]}
'components': [{'release': 'release-1.0', 'name': 'python27'}]}
response = self.client.post(url, data, format='json')
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
self.assertNumChanges([1])
Expand Down Expand Up @@ -2418,8 +2418,8 @@ def test_create_relationship_with_non_existed_type(self):

def test_create_relationship_with_unique_together_fields(self):
url = reverse('rcrelationship-list')
data = {"from_component": {'release': 'release-1.0', 'global_component': 'python', 'name': 'python27'},
"to_component": {'release': 'release-1.0', 'global_component': 'MySQL-python', 'name': 'MySQL-python'},
data = {"from_component": {'release': 'release-1.0', 'name': 'python27'},
"to_component": {'release': 'release-1.0', 'name': 'MySQL-python'},
"type": "executes"}
response = self.client.post(url, data, format='json')
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
Expand Down
12 changes: 6 additions & 6 deletions pdc/apps/component/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -1652,7 +1652,7 @@ def create(self, request, *args, **kwargs):
__Note__:
* components: list of release_components, eg: [{"id": 1}, {"id": 2}] or
[{"release": "release-1.0", "global_component": "python", "name": "python27"}]
[{"release": "release-1.0", "name": "python27"}]
* group_type, release and release_components have to be existed before creating Release Component Group
* It's not allowed to group release_components from different releases
Expand Down Expand Up @@ -1708,7 +1708,7 @@ def update(self, request, *args, **kwargs):
__Note__:
* components: list of release_components, eg: [{"id": 1}, {"id": 2}] or
[{"release": "release-1.0", "global_component": "python", "name": "python27"}]
[{"release": "release-1.0", "name": "python27"}]
__Response__:
Expand Down Expand Up @@ -1777,9 +1777,9 @@ def create(self, request, *args, **kwargs):
__Note__:
* from_component: {"id": 1} or {"release": "release-1.0", "global_component": "python", "name": "python27"}
* from_component: {"id": 1} or {"release": "release-1.0", "name": "python27"}
* type: relationship type
* to_component: {"id": 2} or {"release": "release-2.0", "global_component": "python", "name": "python27"}
* to_component: {"id": 2} or {"release": "release-2.0", "name": "python27"}
__Response__:
Expand Down Expand Up @@ -1831,8 +1831,8 @@ def update(self, request, *args, **kwargs):
__Note__:
* from_component: {"id": 1} or {"release": "release-1.0", "global_component": "python", "name": "python27"}
* to_component: {"id": 2} or {"release": "release-2.0", "global_component": "python", "name": "python27"}
* from_component: {"id": 1} or {"release": "release-1.0", "name": "python27"}
* to_component: {"id": 2} or {"release": "release-2.0", "name": "python27"}
__Response__:
Expand Down

0 comments on commit eca6b61

Please sign in to comment.