def test_job_creation(self): job = Job(**self.fixture) job.full_clean() job.save() self.assertIsNotNone(job.uid) self.assertIsNotNone(job.created_at) self.assertIsNotNone(job.updated_at)
def test_export_formats(self): self.fixture['export_formats'] = [] job = Job(**self.fixture) with self.assertRaises(ValidationError) as e: job.full_clean() self.assertTrue('export_formats' in e.exception.message_dict) self.fixture['export_formats'] = ['not_a_format'] job = Job(**self.fixture) with self.assertRaises(ValidationError) as e: job.full_clean() self.assertTrue('export_formats' in e.exception.message_dict)
def test_validates_feature_selection(self): self.fixture['feature_selection'] = "" job = Job(**self.fixture) with self.assertRaises(ValidationError) as e: job.full_clean() self.assertTrue('feature_selection' in e.exception.message_dict) self.fixture['feature_selection'] = """ - a list - not a dict """ job = Job(**self.fixture) with self.assertRaises(ValidationError) as e: job.full_clean() self.assertTrue('feature_selection' in e.exception.message_dict) self.assertEqual(e.exception.message_dict['feature_selection'],[u'YAML must be dict, not list'])
class JobModelTest(TestCase): def setUp(self): self.job = Job() self.job.audit = AuditFactory() self.job.user = UserFactory() def test_jobs_can_be_created(self): self.job.full_clean() # Should not raise self.job.save() # Should not raise def test_job_initial_state(self): "Job initial state should be RECEIVED" self.assertEqual(self.job.state, Job.RECEIVED_STATE) def test_job_creation_timestamp(self): start = timezone.now() job = JobFactory() end = timezone.now() self.assertLessEqual(start, job.created_at) self.assertLessEqual(job.created_at, end) def test_job_report_url(self): "Fresh and unfinished jobs have no report file" job = JobFactory() with self.assertRaises(ValueError): job.report_file.url @patch('django.core.files.storage.default_storage._wrapped') def test_finished_job_report_url(self, storage_mock): file_mock = MagicMock(spec=File, name='FileMock') file_mock.name = 'test_file.txt' storage_mock.url = MagicMock('url') storage_mock.url.return_value = file_mock.name storage_mock.save.return_value = file_mock self.job.add_report(file_mock) self.assertEqual(self.job.report_file, file_mock) self.assertEqual(self.job.state, Job.SUCCESS_STATE)
def test_max_lengths(self): self.fixture['name'] = 'a' * 101 job = Job(**self.fixture) with self.assertRaises(ValidationError) as e: job.full_clean() self.assertTrue('name' in e.exception.message_dict)
def test_missing_fields(self): job = Job(**self.fixture) job.full_clean() job.save() self.assertIsNotNone(job.uid) self.assertFalse(job.buffer_aoi)