Beispiel #1
0
 def test_transmittal_list(self):
     TransmittalFactory(document__category=self.category)
     TransmittalFactory(document__category=self.category)
     TransmittalFactory(document__category=self.category)
     res = self.client.get(self.url)
     self.assertNotContains(res, 'There are no transmittals here')
     self.assertContains(res, 'tr class="document_row"', 3)
Beispiel #2
0
 def test_successive_transmittals_numbers(self):
     TransmittalFactory(document_key='FAC10005-CTR-CLT-TRS-00001',
                        status='accepted',
                        sequential_number=1)
     TransmittalFactory(document_key='FAC10005-CTR-CLT-TRS-00002',
                        status='accepted',
                        sequential_number=2)
     trs_import = self.prepare_fixtures('wrong_seq_number',
                                        'FAC10005-CTR-CLT-TRS-00004')
     self.assertTrue(
         'wrong_sequential_number' in trs_import.errors['global_errors'])
Beispiel #3
0
    def test_reject_trs_with_wrong_status(self):
        trs = TransmittalFactory(status='accepted')
        with self.assertRaises(RuntimeError):
            trs.reject()

        trs = TransmittalFactory(status='refused')
        with self.assertRaises(RuntimeError):
            trs.reject()
Beispiel #4
0
    def test_accept_trs_with_wrong_status(self):
        trs = TransmittalFactory(status='accepted')
        with self.assertRaises(RuntimeError):
            trs.accept()

        trs = TransmittalFactory(status='processing')
        with self.assertRaises(RuntimeError):
            trs.accept()

        trs = TransmittalFactory(status='rejected')
        with self.assertRaises(RuntimeError):
            trs.accept()
Beispiel #5
0
 def setUp(self):
     Model = ContentType.objects.get_for_model(ContractorDeliverable)
     self.category = CategoryFactory(
         category_template__metadata_model=Model)
     self.transmittal = TransmittalFactory(document__category=self.category)
     user = UserFactory(email='*****@*****.**',
                        password='******',
                        is_superuser=True,
                        category=self.category)
     self.client.login(email=user.email, password='******')
     self.url = reverse(
         'transmittal_diff',
         args=[self.transmittal.pk, self.transmittal.document_key])
Beispiel #6
0
    def test_reject_trs_with_wrong_status(self):
        trs = TransmittalFactory(status='accepted')
        with self.assertRaises(RuntimeError):
            trs.reject()

        trs = TransmittalFactory(status='refused')
        with self.assertRaises(RuntimeError):
            trs.reject()
Beispiel #7
0
    def setUp(self):
        self.tmpdir = tempfile.mkdtemp(prefix='phasetest_', suffix='_trs')
        self.incoming = join(self.tmpdir, 'incoming')
        self.tobechecked = join(self.tmpdir, 'tobechecked')
        self.accepted = join(self.tmpdir, 'accepted')
        self.rejected = join(self.tmpdir, 'rejected')

        os.mkdir(self.accepted)
        os.mkdir(self.rejected)
        os.mkdir(self.tobechecked)

        self.transmittal = TransmittalFactory(
            document_key='FAC10005-CTR-CLT-TRS-00001',
            status='tobechecked',
            tobechecked_dir=self.tobechecked,
            accepted_dir=self.accepted,
            rejected_dir=self.rejected,
            contractor='test')
        os.mkdir(self.transmittal.full_tobechecked_name)
Beispiel #8
0
 def test_already_exists(self):
     TransmittalFactory(document_key='FAC10005-CTR-CLT-TRS-00001',
                        status='tobechecked')
     trs_import = self.prepare_fixtures('single_correct_trs',
                                        'FAC10005-CTR-CLT-TRS-00001')
     self.assertTrue('already_exists' in trs_import.errors['global_errors'])
Beispiel #9
0
    def test_accept_trs_with_wrong_status(self):
        trs = TransmittalFactory(status='accepted')
        with self.assertRaises(RuntimeError):
            trs.accept()

        trs = TransmittalFactory(status='processing')
        with self.assertRaises(RuntimeError):
            trs.accept()

        trs = TransmittalFactory(status='rejected')
        with self.assertRaises(RuntimeError):
            trs.accept()
Beispiel #10
0
    def setUp(self):
        # Filesystem setup
        self.tmpdir = tempfile.mkdtemp(prefix='phasetest_', suffix='_trs')
        self.incoming = join(self.tmpdir, 'incoming')
        self.tobechecked = join(self.tmpdir, 'tobechecked')
        self.accepted = join(self.tmpdir, 'accepted')
        self.rejected = join(self.tmpdir, 'rejected')

        os.mkdir(self.accepted)
        os.mkdir(self.rejected)
        os.mkdir(self.tobechecked)

        Model = ContentType.objects.get_for_model(ContractorDeliverable)
        self.category = CategoryFactory(category_template__metadata_model=Model)
        self.document = DocumentFactory(
            document_key='FAC10005-CTR-000-EXP-LAY-4891',
            metadata={
                'title': 'Cause & Effect Chart',
                'contract_number': 'FAC10005',
                'originator': EntityFactory(),
                'unit': '000',
                'discipline': 'EXP',
                'document_type': 'LAY',
                'sequential_number': '4891',
            },
            revision={
                'revision': 1,
                'docclass': 1,
                'status': 'SPD',
            },
            metadata_factory_class=ContractorDeliverableFactory,
            revision_factory_class=ContractorDeliverableRevisionFactory,
            category=self.category)
        self.metadata = self.document.metadata

        ContractorDeliverableRevisionFactory(
            metadata=self.metadata,
            revision=2,
            docclass=1,
            status='SPD')

        sample_path = b'documents/tests/'
        native_doc = b'sample_doc_native.docx'
        pdf_doc = b'sample_doc_pdf.pdf'

        self.transmittal = TransmittalFactory(
            document_key='FAC10005-CTR-CLT-TRS-00001',
            status='tobechecked',
            tobechecked_dir=self.tobechecked,
            accepted_dir=self.accepted,
            rejected_dir=self.rejected,
            contractor='test')
        os.mkdir(self.transmittal.full_tobechecked_name)

        data = {
            'transmittal': self.transmittal,
            'document': self.document,
            'category': self.category,
            'title': 'Cause & Effect Chart',
            'contract_number': 'FAC10005',
            'originator': EntityFactory(trigram='CTR'),
            'unit': '000',
            'discipline': 'EXP',
            'document_type': 'LAY',
            'sequential_number': '4891',
            'docclass': 1,
            'revision': 1,
            'status': 'SPD',
            'pdf_file': SimpleUploadedFile(pdf_doc, sample_path + pdf_doc),
            'created_on': '2015-10-10',
        }
        TrsRevisionFactory(**data)

        data.update({'revision': 2, 'status': 'IFA'})
        TrsRevisionFactory(**data)

        data.update({'revision': 3, 'docclass': 2})
        TrsRevisionFactory(**data)

        data.update({
            'revision': 4,
            'status': 'FIN',
            'native_file': SimpleUploadedFile(native_doc, sample_path + native_doc),
        })
        TrsRevisionFactory(**data)
Beispiel #11
0
class TransmittalModelTests(TestCase):

    def setUp(self):
        self.tmpdir = tempfile.mkdtemp(prefix='phasetest_', suffix='_trs')
        self.incoming = join(self.tmpdir, 'incoming')
        self.tobechecked = join(self.tmpdir, 'tobechecked')
        self.accepted = join(self.tmpdir, 'accepted')
        self.rejected = join(self.tmpdir, 'rejected')

        os.mkdir(self.accepted)
        os.mkdir(self.rejected)
        os.mkdir(self.tobechecked)

        self.transmittal = TransmittalFactory(
            document_key='FAC10005-CTR-CLT-TRS-00001',
            status='tobechecked',
            tobechecked_dir=self.tobechecked,
            accepted_dir=self.accepted,
            rejected_dir=self.rejected,
            contractor='test')
        os.mkdir(self.transmittal.full_tobechecked_name)

    def tearDown(self):
        if os.path.exists(self.tmpdir):
            rmtree(self.tmpdir)

    def test_reject_trs_with_wrong_status(self):
        trs = TransmittalFactory(status='accepted')
        with self.assertRaises(RuntimeError):
            trs.reject()

        trs = TransmittalFactory(status='refused')
        with self.assertRaises(RuntimeError):
            trs.reject()

    def test_reject_moves_trs_to_rejected_directory(self):
        self.assertTrue(os.path.exists(self.transmittal.full_tobechecked_name))
        self.assertFalse(os.path.exists(self.transmittal.full_rejected_name))

        self.transmittal.reject()
        self.assertFalse(os.path.exists(self.transmittal.full_tobechecked_name))
        self.assertTrue(os.path.exists(self.transmittal.full_rejected_name))

    def test_reject_with_already_existing_rejected_directory(self):
        touch(join(self.transmittal.full_tobechecked_name, 'toto.csv'))

        copytree(
            self.transmittal.full_tobechecked_name,
            self.transmittal.full_rejected_name)
        self.assertTrue(os.path.exists(self.transmittal.full_tobechecked_name))
        self.assertTrue(os.path.exists(self.transmittal.full_rejected_name))

        self.transmittal.reject()
        self.assertEqual(self.transmittal.status, 'rejected')
        self.assertFalse(os.path.exists(self.transmittal.full_tobechecked_name))
        self.assertTrue(os.path.exists(self.transmittal.full_rejected_name))

    def test_accept_trs_with_wrong_status(self):
        trs = TransmittalFactory(status='accepted')
        with self.assertRaises(RuntimeError):
            trs.accept()

        trs = TransmittalFactory(status='processing')
        with self.assertRaises(RuntimeError):
            trs.accept()

        trs = TransmittalFactory(status='rejected')
        with self.assertRaises(RuntimeError):
            trs.accept()

    def test_accept(self):
        self.transmittal.accept()
        self.assertEqual(self.transmittal.status, 'processing')