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'])
Exemple #4
0
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)