def test_serialize_after_finish(self): """ Tests serializing a job's state to a RunningJob instance. """ task_name = 'task-1' state = JobState(task_name) state.save_state() expected_events = [ { 'name': 'event-1', 'arguments': ['a', 'b'], }, { 'name': 'event-2', 'arguments': None, } ] mock_task = self.create_mock_task(task_name, expected_events) state.add_processed_task(mock_task) state.save_state() state.mark_as_complete() # Stil only one running job instance self.assertEqual(RunningJob.objects.count(), 1) job = RunningJob.objects.all()[0] self.assertSequenceEqual(job.state['events'], expected_events) self.assertSequenceEqual(job.state['processed_tasks'], [task_name]) self.assertTrue(job.is_complete)