hide survey passwords in saved launch configs

This commit is contained in:
AlanCoding
2017-12-11 16:07:13 -05:00
parent 1bc2d83403
commit 659d31324d
8 changed files with 142 additions and 47 deletions

View File

@@ -13,6 +13,10 @@ from awx.main.models import (
WorkflowJobTemplateNode,
WorkflowJob,
WorkflowJobNode,
WorkflowJobTemplate,
Project,
Inventory,
JobTemplate
)
@@ -150,6 +154,46 @@ class TestWorkflowJobTemplateNodeSerializerCharPrompts():
assert WFJT_serializer.instance.limit == 'webservers'
@mock.patch('awx.api.serializers.BaseSerializer.validate', lambda self, attrs: attrs)
class TestWorkflowJobTemplateNodeSerializerSurveyPasswords():
@pytest.fixture
def jt(self, survey_spec_factory):
return JobTemplate(
name='fake-jt',
survey_enabled=True,
survey_spec=survey_spec_factory(variables='var1', default_type='password'),
project=Project('fake-proj'), project_id=42,
inventory=Inventory('fake-inv'), inventory_id=42
)
def test_set_survey_passwords_create(self, jt):
serializer = WorkflowJobTemplateNodeSerializer()
wfjt = WorkflowJobTemplate(name='fake-wfjt')
attrs = serializer.validate({
'unified_job_template': jt,
'workflow_job_template': wfjt,
'extra_data': {'var1': 'secret_answer'}
})
assert 'survey_passwords' in attrs
assert 'var1' in attrs['survey_passwords']
def test_set_survey_passwords_modify(self, jt):
serializer = WorkflowJobTemplateNodeSerializer()
wfjt = WorkflowJobTemplate(name='fake-wfjt')
serializer.instance = WorkflowJobTemplateNode(
workflow_job_template=wfjt,
unified_job_template=jt
)
attrs = serializer.validate({
'unified_job_template': jt,
'workflow_job_template': wfjt,
'extra_data': {'var1': 'secret_answer'}
})
assert 'survey_passwords' in attrs
assert 'var1' in attrs['survey_passwords']
@mock.patch('awx.api.serializers.WorkflowJobTemplateNodeSerializer.get_related', lambda x,y: {})
class TestWorkflowJobNodeSerializerGetRelated():
@pytest.fixture