Properly hand arguments on the base task

This commit is contained in:
Matthew Jones 2014-03-13 10:53:38 -04:00
parent 3fe31828a8
commit 16f0373766
2 changed files with 8 additions and 2 deletions

View File

@ -400,7 +400,14 @@ class CommonTask(PrimordialModel):
if not self.can_start:
return False
needed = self._get_passwords_needed_to_start()
opts = dict([(field, kwargs.get(field, '')) for field in needed])
try:
stored_args = json.loads(decrypt_field(self, 'start_args'))
except Exception, e:
stored_args = None
if stored_args is None or stored_args == '':
opts = dict([(field, kwargs.get(field, '')) for field in needed])
else:
opts = dict([(field, stored_args.get(field, '')) for field in needed])
if not all(opts.values()):
return False
task_class().apply_async((self.pk,), opts, link_error=error_callback)

View File

@ -403,7 +403,6 @@ class CleanupJobsTest(BaseCommandMixin, BaseLiveServerTest):
self.assertEqual(job.status, 'new')
self.assertFalse(job.passwords_needed_to_start)
self.assertTrue(job.signal_start())
#self.assertEqual(job.status, 'waiting')
job = Job.objects.get(pk=job.pk)
self.assertEqual(job.status, 'successful')
# With days=1, no jobs will be deleted.