Esempio n. 1
0
 def test_workflow_copy_warnings_inv(self, wfjt, rando, inventory):
     '''
     The user `rando` does not have access to the prompted inventory in a
     node inside the workflow - test surfacing this information
     '''
     wfjt.workflow_job_template_nodes.create(inventory=inventory)
     access = WorkflowJobTemplateAccess(rando, save_messages=True)
     assert not access.can_copy(wfjt)
     warnings = access.messages
     assert 'inventories_unable_to_copy' in warnings
Esempio n. 2
0
 def test_workflow_copy_no_start(self, wfjt, inventory, admin_user):
     # Test that un-startable resource doesn't block copy
     inv_src = InventorySource.objects.create(inventory=inventory,
                                              source='custom',
                                              source_script=None)
     assert not inv_src.can_update
     wfjt.workflow_job_template_nodes.create(unified_job_template=inv_src)
     access = WorkflowJobTemplateAccess(admin_user, save_messages=True)
     access.can_copy(wfjt)
     assert not access.messages
Esempio n. 3
0
    def test_workflow_can_add(self, workflow, user_unit):
        organization = Organization(name='test-org')
        workflow.organization = organization
        organization.admin_role = Role()

        def mock_get_object(Class, **kwargs):
            if Class == Organization:
                return organization
            else:
                raise Exception('Item requested has not been mocked')

        access = WorkflowJobTemplateAccess(user_unit)
        with mock.patch('awx.main.models.rbac.Role.__contains__', return_value=True):
            with mock.patch('awx.main.access.get_object_or_400', mock_get_object):
                assert access.can_add({'organization': 1})
Esempio n. 4
0
    def test_copy_permissions_org_admin(self, wfjt, org_admin, org_member):
        admin_access = WorkflowJobTemplateAccess(org_admin)
        assert admin_access.can_copy(wfjt)

        wfjt.organization.workflow_admin_role.members.add(org_member)
        admin_access = WorkflowJobTemplateAccess(org_member)
        assert admin_access.can_copy(wfjt)
Esempio n. 5
0
 def test_org_admin_edit(self, wfjt, org_admin):
     access = WorkflowJobTemplateAccess(org_admin)
     assert access.can_change(wfjt, {'name': 'new name'})
Esempio n. 6
0
 def test_random_user_no_edit(self, wfjt, rando):
     access = WorkflowJobTemplateAccess(rando)
     assert not access.can_change(wfjt, {'name': 'new name'})
Esempio n. 7
0
 def test_copy_permissions_org_admin(self, wfjt, org_admin, org_member):
     admin_access = WorkflowJobTemplateAccess(org_admin)
     assert admin_access.can_copy(wfjt)
Esempio n. 8
0
 def test_workflow_copy_warnings_jt(self, wfjt, rando, job_template):
     wfjt.workflow_job_template_nodes.create(unified_job_template=job_template)
     access = WorkflowJobTemplateAccess(rando, save_messages=True)
     assert not access.can_copy(wfjt)
     warnings = access.messages
     assert 'templates_unable_to_copy' in warnings