From fccf663d420706eaa06d8c4752b03baa4531ed13 Mon Sep 17 00:00:00 2001 From: Chris Church Date: Tue, 2 Jul 2013 14:41:05 -0400 Subject: [PATCH] Add tests for changed flag on job events. --- awx/main/models/__init__.py | 8 +++----- awx/main/tests/tasks.py | 8 ++++++++ awx/main/views.py | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/awx/main/models/__init__.py b/awx/main/models/__init__.py index 2bcaf1c4a2..528545da30 100644 --- a/awx/main/models/__init__.py +++ b/awx/main/models/__init__.py @@ -1130,11 +1130,9 @@ class JobEvent(models.Model): def save(self, *args, **kwargs): if self.event in self.FAILED_EVENTS: self.failed = True - try: - if self.event_data['res']['changed']: - self.changed = True - except (KeyError, IndexError, AttributeError): - pass + res = self.event_data.get('res', None) + if isinstance(res, dict) and res.get('changed', False): + self.changed = True try: if not self.host and self.event_data.get('host', ''): self.host = self.job.inventory.hosts.get(name=self.event_data['host']) diff --git a/awx/main/tests/tasks.py b/awx/main/tests/tasks.py index 1ad5307ad1..e16a42e05b 100644 --- a/awx/main/tests/tasks.py +++ b/awx/main/tests/tasks.py @@ -159,6 +159,7 @@ class RunJobTest(BaseCeleryTest): 'inventory': self.inventory, 'project': self.project, 'credential': self.credential, + 'job_type': 'run', } try: opts['playbook'] = self.project.playbooks[0] @@ -178,6 +179,7 @@ class RunJobTest(BaseCeleryTest): 'inventory': self.inventory, 'project': self.project, 'credential': self.credential, + 'job_type': 'run', } try: opts['playbook'] = self.project.playbooks[0] @@ -219,6 +221,8 @@ class RunJobTest(BaseCeleryTest): unicode(job_event) # For test coverage. job_event.save() should_be_failed = bool(runner_status not in ('ok', 'skipped')) + should_be_changed = bool(runner_status in ('ok', 'failed') and + job.job_type == 'run') host_pks = set([self.host.pk]) qs = job_events.filter(event='playbook_on_start') self.assertEqual(qs.count(), 1) @@ -227,6 +231,7 @@ class RunJobTest(BaseCeleryTest): self.assertFalse(evt.play, evt) self.assertFalse(evt.task, evt) self.assertEqual(evt.failed, should_be_failed) + self.assertEqual(evt.changed, should_be_changed) self.assertEqual(set(evt.hosts.values_list('pk', flat=True)), host_pks) qs = job_events.filter(event='playbook_on_play_start') @@ -236,6 +241,7 @@ class RunJobTest(BaseCeleryTest): self.assertTrue(evt.play, evt) self.assertFalse(evt.task, evt) self.assertEqual(evt.failed, should_be_failed) + self.assertEqual(evt.changed, should_be_changed) self.assertEqual(set(evt.hosts.values_list('pk', flat=True)), host_pks) qs = job_events.filter(event='playbook_on_task_start') @@ -245,6 +251,7 @@ class RunJobTest(BaseCeleryTest): self.assertTrue(evt.play, evt) self.assertTrue(evt.task, evt) self.assertEqual(evt.failed, should_be_failed) + self.assertEqual(evt.changed, should_be_changed) self.assertEqual(set(evt.hosts.values_list('pk', flat=True)), host_pks) qs = job_events.filter(event=('runner_on_%s' % runner_status)) @@ -254,6 +261,7 @@ class RunJobTest(BaseCeleryTest): self.assertTrue(evt.play, evt) self.assertTrue(evt.task, evt) self.assertEqual(evt.failed, should_be_failed) + self.assertEqual(evt.changed, should_be_changed) self.assertEqual(set(evt.hosts.values_list('pk', flat=True)), host_pks) qs = job_events.filter(event__startswith='runner_') diff --git a/awx/main/views.py b/awx/main/views.py index 0297c8c1fc..ae52484558 100644 --- a/awx/main/views.py +++ b/awx/main/views.py @@ -35,7 +35,7 @@ from awx.main.serializers import * def handle_error(request, status=404): context = {} - print request.path, status + #print request.path, status if request.path.startswith('/admin/'): template_name = 'admin/%d.html' % status else: