From 9b7d046cec78b8e0790c3220fbbfa6bf91732f63 Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Wed, 19 Oct 2016 09:02:09 -0400 Subject: [PATCH] move job tests to new survey testing file --- awx/api/serializers.py | 42 ++----------------- awx/api/views.py | 7 ++-- ...test_job_unit.py => test_survey_models.py} | 0 3 files changed, 7 insertions(+), 42 deletions(-) rename awx/main/tests/unit/models/{test_job_unit.py => test_survey_models.py} (100%) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index f3e8419752..205d66aa7f 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -2633,26 +2633,7 @@ class WorkflowJobLaunchSerializer(BaseSerializer): def validate(self, attrs): errors = {} - obj = self.context.get('obj') - data = self.context.get('data') - - for field in obj.resources_needed_to_start: - if not (attrs.get(field, False) and obj._ask_for_vars_dict().get(field, False)): - errors[field] = "Job Template '%s' is missing or undefined." % field - - if (not obj.ask_credential_on_launch) or (not attrs.get('credential', None)): - credential = obj.credential - else: - credential = attrs.get('credential', None) - - # fill passwords dict with request data passwords - if credential and credential.passwords_needed: - passwords = self.context.get('passwords') - try: - for p in credential.passwords_needed: - passwords[p] = data[p] - except KeyError: - errors['passwords_needed_to_start'] = credential.passwords_needed + obj = self.instance extra_vars = attrs.get('extra_vars', {}) @@ -2674,27 +2655,12 @@ class WorkflowJobLaunchSerializer(BaseSerializer): if validation_errors: errors['variables_needed_to_start'] = validation_errors - # Special prohibited cases for scan jobs - errors.update(obj._extra_job_type_errors(data)) - if errors: raise serializers.ValidationError(errors) - JT_extra_vars = obj.extra_vars - JT_limit = obj.limit - JT_job_type = obj.job_type - JT_job_tags = obj.job_tags - JT_skip_tags = obj.skip_tags - JT_inventory = obj.inventory - JT_credential = obj.credential - attrs = super(JobLaunchSerializer, self).validate(attrs) - obj.extra_vars = JT_extra_vars - obj.limit = JT_limit - obj.job_type = JT_job_type - obj.skip_tags = JT_skip_tags - obj.job_tags = JT_job_tags - obj.inventory = JT_inventory - obj.credential = JT_credential + WFJT_extra_vars = obj.extra_vars + attrs = super(WorkflowJobLaunchSerializer, self).validate(attrs) + obj.extra_vars = WFJT_extra_vars return attrs class NotificationTemplateSerializer(BaseSerializer): diff --git a/awx/api/views.py b/awx/api/views.py index 4431a6e825..972204a98b 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -2815,10 +2815,9 @@ class WorkflowJobTemplateLaunch(GenericAPIView): if not request.user.can_access(self.model, 'start', obj): raise PermissionDenied() - -# serializer = self.serializer_class(instance=obj, data=request.data, context={'obj': obj, 'data': request.data, 'passwords': passwords}) -# if not serializer.is_valid(): -# return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + serializer = self.serializer_class(instance=obj, data=request.data) + if not serializer.is_valid(): + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) prompted_fields, ignored_fields = obj._accept_or_ignore_job_kwargs(**request.data) diff --git a/awx/main/tests/unit/models/test_job_unit.py b/awx/main/tests/unit/models/test_survey_models.py similarity index 100% rename from awx/main/tests/unit/models/test_job_unit.py rename to awx/main/tests/unit/models/test_survey_models.py