From 6bb4f4f25548ae69ba70a88a3a982c8c9cb06e62 Mon Sep 17 00:00:00 2001 From: Michael DeHaan Date: Thu, 18 Apr 2013 21:05:31 -0400 Subject: [PATCH] remove user from jobs (redundant, since we have created_by) and add start of jobs REST testing. --- lib/main/admin.py | 8 +-- lib/main/tests/jobs.py | 111 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+), 4 deletions(-) create mode 100644 lib/main/tests/jobs.py diff --git a/lib/main/admin.py b/lib/main/admin.py index 95d86e5f5c..8f35244c7a 100644 --- a/lib/main/admin.py +++ b/lib/main/admin.py @@ -208,7 +208,7 @@ class JobTemplateAdmin(BaseModelAdmin): (None, {'fields': ('name', 'active', 'description', 'get_create_link_display', 'get_jobs_link_display')}), (_('Job Parameters'), {'fields': ('inventory', 'project', 'credential', - 'user', 'job_type')}), + 'job_type')}), #(_('Tags'), {'fields': ('tags',)}), (_('Audit Trail'), {'fields': ('creation_date', 'created_by', 'audit_trail',)}), @@ -231,8 +231,8 @@ class JobTemplateAdmin(BaseModelAdmin): create_opts['project'] = obj.project.pk if obj.credential: create_opts['credential'] = obj.credential.pk - if obj.user: - create_opts['user'] = obj.user.pk + #if obj.user: + # create_opts['user'] = obj.user.pk create_url += '?%s' % urllib.urlencode(create_opts) return format_html('{1}', create_url, 'Create Job') get_create_link_display.short_description = _('Create Job') @@ -265,7 +265,7 @@ class JobAdmin(BaseModelAdmin): fieldsets = ( (None, {'fields': ('name', 'job_template', 'description')}), (_('Job Parameters'), {'fields': ('inventory', 'project', 'credential', - 'user', 'job_type')}), + 'job_type')}), #(_('Tags'), {'fields': ('tags',)}), (_('Audit Trail'), {'fields': ('creation_date', 'created_by', 'audit_trail',)}), diff --git a/lib/main/tests/jobs.py b/lib/main/tests/jobs.py new file mode 100644 index 0000000000..9fe29853df --- /dev/null +++ b/lib/main/tests/jobs.py @@ -0,0 +1,111 @@ +# Copyright (c) 2013 AnsibleWorks, Inc. +# +# This file is part of Ansible Commander. +# +# Ansible Commander is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, version 3 of the License. +# +# Ansible Commander is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible Commander. If not, see . + +import datetime +import json + +from django.contrib.auth.models import User as DjangoUser +import django.test +from django.test.client import Client +from lib.main.models import * +from lib.main.tests.base import BaseTest + +class JobsTest(BaseTest): + + def collection(self): + # not really used + return '/api/v1/job_templates/' + + def setUp(self): + super(JobsTest, self).setUp() + self.setup_users() + + self.organization = Organization.objects.create( + name = 'engineering', + created_by = self.normal_django_user + ) + + self.inventory = Inventory.objects.create( + name = 'prod', + organization = self.organization, + created_by = self.normal_django_user + ) + + self.group_a = Group.objects.create( + name = 'group1', + inventory = self.inventory, + created_by = self.normal_django_user + ) + + self.host_a = Host.objects.create( + name = '127.0.0.1', + inventory = self.inventory, + created_by = self.normal_django_user + ) + + self.host_b = Host.objects.create( + name = '127.0.0.2', + inventory = self.inventory, + created_by = self.normal_django_user + ) + + self.group_a.hosts.add(self.host_a) + self.group_a.hosts.add(self.host_b) + self.group_a.save() + + self.project = Project.objects.create( + name = 'testProject', + created_by = self.normal_django_user, + local_repository = '/tmp/', + scm_type = 'git', + default_playbook = 'site.yml', + ) + + self.credential = Credential.objects.create( + ssh_key_data = 'xxx', + created_by = self.normal_django_user + ) + + self.organization.projects.add(self.project) + self.organization.admins.add(self.normal_django_user) + self.organization.users.add(self.normal_django_user) + self.organization.save() + + self.template1 = JobTemplate.objects.create( + name = 'job-run', + job_type = 'run', + inventory = self.inventory, + credential = self.credential, + project = self.project, + ) + self.template2 = JobTemplate.objects.create( + name = 'job-check', + job_type = 'check', + inventory = self.inventory, + credential = self.credential, + project = self.project, + ) + + + def test_get_list(self): + + # no credentials == 401 + data = self.get('/api/v1/job_templates/', expect=401) + data = self.get('/api/v1/job_templates/', expect=200, auth=self.get_normal_credentials()) + #print data + self.assertTrue(data['count'], 99) + +