From 2cf0694adf0f15d2ed33f5bd9f5c57f389d3ed67 Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Wed, 8 Jun 2016 14:56:00 -0400 Subject: [PATCH] move job view test to serializer unit test --- .../functional/api/test_unified_jobs_view.py | 6 ------ awx/main/tests/unit/api/test_serializers.py | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/awx/main/tests/functional/api/test_unified_jobs_view.py b/awx/main/tests/functional/api/test_unified_jobs_view.py index a7c1607dd9..ab9487bc38 100644 --- a/awx/main/tests/functional/api/test_unified_jobs_view.py +++ b/awx/main/tests/functional/api/test_unified_jobs_view.py @@ -1,5 +1,4 @@ import pytest -import json from awx.main.models import UnifiedJob from django.core.urlresolvers import reverse @@ -16,8 +15,3 @@ def test_options_fields_choices(instance, options, user): assert 'choice' == response.data['actions']['GET']['status']['type'] assert UnifiedJob.STATUS_CHOICES == response.data['actions']['GET']['status']['choices'] -@pytest.mark.django_db -@pytest.mark.survey -def test_job_redacted_survey_passwords(job_with_secret_key, get, admin_user): - response = get(reverse('api:job_detail', args=(job_with_secret_key.pk,)), admin_user) - assert json.loads(response.data['extra_vars'])['secret_key'] == '$encrypted$' diff --git a/awx/main/tests/unit/api/test_serializers.py b/awx/main/tests/unit/api/test_serializers.py index 0b2f41d930..01c60adcc4 100644 --- a/awx/main/tests/unit/api/test_serializers.py +++ b/awx/main/tests/unit/api/test_serializers.py @@ -1,6 +1,7 @@ # Python import pytest import mock +import json # AWX from awx.api.serializers import JobTemplateSerializer, JobSerializer, JobOptionsSerializer @@ -145,6 +146,22 @@ class TestJobSerializerGetRelated(GetRelatedMixin): assert 'job_template' in related assert related['job_template'] == '/api/v1/%s/%d/' % ('job_templates', job.job_template.pk) +@mock.patch('awx.api.serializers.BaseSerializer.to_representation', lambda self,obj: { + 'extra_vars': obj.extra_vars +}) +class TestJobSerializerSubstitution(): + + def test_survey_password_hide(self, mocker): + job = mocker.MagicMock(**{ + 'display_extra_vars.return_value': '{\"secret_key\": \"$encrypted$\"}', + 'extra_vars.return_value': '{\"secret_key\": \"my_password\"}'}) + serializer = JobSerializer(job) + rep = serializer.to_representation(job) + extra_vars = json.loads(rep['extra_vars']) + assert extra_vars['secret_key'] == '$encrypted$' + job.display_extra_vars.assert_called_once_with() + assert 'my_password' not in extra_vars + @mock.patch('awx.api.serializers.BaseSerializer.get_summary_fields', lambda x,y: {}) class TestJobOptionsSerializerGetSummaryFields(GetSummaryFieldsMixin): def test__summary_field_labels_10_max(self, mocker, job_template, labels):