class voegZaakdocumentToe_EdcLk01RegressionTests(DMSMixin,
                                                 BaseTestPlatformTests):
    maxDiff = None
    test_files_subfolder = 'maykin_voegZaakdocumentToe'
    porttype = 'OntvangAsynchroon'
    disable_mocks = True

    @skipIf(on_jenkins() or should_skip_cmis_tests(),
            "Skipped while there's no Alfresco running on Jenkins")
    @override_settings(
        CMIS_UPLOAD_TO='zaakmagazijn.cmis.utils.upload_to_date_based',
        ZAAKMAGAZIJN_SYSTEEM={
            'organisatie': '0392',
            'applicatie': 'SoapUI',
            'administratie': 'test',
            'gebruiker': 'David'
        })
    def test_index_error_list_index_out_of_range(self):
        """
        See: https://taiga.maykinmedia.nl/project/haarlem-zaakmagazijn/issue/278
        """
        zaak = ZaakFactory.create(
            zaakidentificatie='0392f576ff4a-af98-4669-8fc6-625c7190aa9d',
            status_set__indicatie_laatst_gezette_status=JaNee.ja)
        zaak.zaakkenmerk_set.all().delete()
        edc_type = InformatieObjectTypeFactory.create(
            informatieobjecttypeomschrijving='test')

        vraag = 'voegZaakdocumentToe_EdcLk01_taiga278.xml'
        response = self._do_request(self.porttype, vraag)

        self.assertEquals(response.status_code, 200, response.content)
class voegZaakdocumentToe_EdcLk01EndToEndTests(BaseSoapTests):
    maxDiff = None
    test_files_subfolder = 'maykin_voegZaakdocumentToe'
    porttype = 'OntvangAsynchroon'
    disable_mocks = True

    def setUp(self):
        super().setUp()

        self.client = CMISDMSClient()
        self.addCleanup(self._removeTree)
        # Create zaak
        self.zaak = ZaakFactory.create(
            zaakidentificatie='123456789',
            einddatum=None,
        )
        StatusFactory.create(zaak=self.zaak,
                             indicatie_laatst_gezette_status=JaNee.ja)

        # Create zaak folder
        self.client.creeer_zaakfolder(self.zaak)

    def _removeTree(self):
        """
        Remove the created Zaak root folder and all children from the DMS.
        """
        try:
            root_folder = self.client._repo.getObjectByPath('/Zaken')
        except ObjectNotFoundException:
            return
        root_folder.deleteTree()

    @skipIf(on_jenkins() or should_skip_cmis_tests(),
            "Skipped while there's no Alfresco running on Jenkins")
    @override_settings(
        ZAAKMAGAZIJN_SYSTEEM={
            'organisatie': 'Maykin Media',
            'applicatie': 'TTA',
            'administratie': '',
            'gebruiker': ''
        })
    def test_upload_small_file(self):
        """
        See: https://taiga.maykinmedia.nl/project/haarlem-zaakmagazijn/issue/387
        """

        self.iot = InformatieObjectTypeFactory.create()
        self.zender = {
            'organisatie': 'Maykin Media',
            'applicatie': 'Test',
            'administratie': '',
            'gebruiker': '',
        }
        self.ontvanger = {
            'organisatie': 'Maykin Media',
            'applicatie': 'TTA',
            'administratie': '',
            'gebruiker': '',
        }
        client = self._get_client('OntvangAsynchroon')

        stuf_factory, zkn_factory, zds_factory = self._get_type_factories(
            client)
        today = date.today().strftime('%Y%m%d')

        stuurgegevens = stuf_factory['EDC-StuurgegevensLk01'](
            berichtcode='Lk01',
            entiteittype='EDC',
            zender=self.zender,
            ontvanger=self.ontvanger,
            referentienummer='1234',
            tijdstipBericht=stuf_datetime.now(),
        )

        big_ass_file = b'a' * 1 * 1024**2  # 1MB
        name = '{}.flac'.format(int(time.time()))

        inhoud = stuf_factory.BinaireInhoud(
            big_ass_file,
            bestandsnaam=name,
            contentType='audio/flac',
        )
        response = client.service.voegZaakdocumentToe_EdcLk01(
            parameters=stuf_factory['ParametersLk01'](
                indicatorOvername='V',
                mutatiesoort='T',
            ),
            stuurgegevens=stuurgegevens,
            object=zkn_factory['VoegZaakdocumentToe-EDC-kennisgeving'](
                **{
                    'entiteittype':
                    'EDC',
                    'verwerkingssoort':
                    'T',
                    'identificatie':
                    '12345ABC{}'.format(int(time.time())),
                    'dct.omschrijving':
                    self.iot.informatieobjecttypeomschrijving,
                    'creatiedatum':
                    today,
                    'ontvangstdatum':
                    today,
                    'titel':
                    'To be Everywhere {}'.format(int(time.time())),
                    'beschrijving':
                    '2016 album',
                    'formaat':
                    'CD',
                    'taal':
                    'Engels',
                    'versie':
                    '1',
                    'status':
                    'Gepubliceerd',
                    'verzenddatum':
                    today,
                    'vertrouwelijkAanduiding':
                    'OPENBAAR',
                    'auteur':
                    'Thrice',
                    # 'link': ''
                    'inhoud':
                    inhoud,
                    # 'tijdvakGeldigheid': stuf_factory.tijdvakGeldigheid(
                    #     beginGeldigheid=today,
                    # ),
                    # 'tijdstipRegistratie': '',
                    # 'extraElementend': None,
                    'isRelevantVoor': [
                        zkn_factory['VoegZaakdocumentToe-EDCZAK-kennisgeving'](
                            entiteittype='EDCZAK',
                            verwerkingssoort='T',
                            gerelateerde=zkn_factory[
                                'VoegZaakdocumentToe-ZAK-kerngegevensKennisgeving']
                            (
                                entiteittype='ZAK',
                                verwerkingssoort='I',
                                identificatie=self.zaak.zaakidentificatie,
                                omschrijving=self.zaak.omschrijving,
                                # isVan=None
                            ),
                            # titel
                            # beschrijving
                            # registratiedatum
                            # stt.volgnummer
                            # stt.omschrijving
                            # sta.datumStatusGezet
                            # tijdvakRelatie
                            # tijdvakGeldigheid
                            # tijdstipRegistratie
                            # extraElementen
                        )
                    ]
                }))

    @skipIf(on_jenkins() or should_skip_cmis_tests(),
            "Skipped while there's no Alfresco running on Jenkins")
    @override_settings(
        ZAAKMAGAZIJN_SYSTEEM={
            'organisatie': 'Maykin Media',
            'applicatie': 'TTA',
            'administratie': '',
            'gebruiker': ''
        })
    def test_upload_large_file(self):
        """
        See: https://taiga.maykinmedia.nl/project/haarlem-zaakmagazijn/issue/387
        """

        self.iot = InformatieObjectTypeFactory.create()
        self.zender = {
            'organisatie': 'Maykin Media',
            'applicatie': 'Test',
            'administratie': '',
            'gebruiker': '',
        }
        self.ontvanger = {
            'organisatie': 'Maykin Media',
            'applicatie': 'TTA',
            'administratie': '',
            'gebruiker': '',
        }
        client = self._get_client('OntvangAsynchroon')

        stuf_factory, zkn_factory, zds_factory = self._get_type_factories(
            client)
        today = date.today().strftime('%Y%m%d')

        stuurgegevens = stuf_factory['EDC-StuurgegevensLk01'](
            berichtcode='Lk01',
            entiteittype='EDC',
            zender=self.zender,
            ontvanger=self.ontvanger,
            referentienummer='1234',
            tijdstipBericht=stuf_datetime.now(),
        )

        # Note that the content is base64 encoded twice, and thus increases in size
        # when encoded.
        big_ass_file = b'a' * 3 * 1024**2  # 22MB
        name = '{}.flac'.format(int(time.time()))

        inhoud = stuf_factory.BinaireInhoud(
            big_ass_file,
            bestandsnaam=name,
            contentType='audio/flac',
        )
        response = client.service.voegZaakdocumentToe_EdcLk01(
            parameters=stuf_factory['ParametersLk01'](
                indicatorOvername='V',
                mutatiesoort='T',
            ),
            stuurgegevens=stuurgegevens,
            object=zkn_factory['VoegZaakdocumentToe-EDC-kennisgeving'](
                **{
                    'entiteittype':
                    'EDC',
                    'verwerkingssoort':
                    'T',
                    'identificatie':
                    '12345ABC{}'.format(int(time.time())),
                    'dct.omschrijving':
                    self.iot.informatieobjecttypeomschrijving,
                    'creatiedatum':
                    today,
                    'ontvangstdatum':
                    today,
                    'titel':
                    'To be Everywhere {}'.format(int(time.time())),
                    'beschrijving':
                    '2016 album',
                    'formaat':
                    'CD',
                    'taal':
                    'Engels',
                    'versie':
                    '1',
                    'status':
                    'Gepubliceerd',
                    'verzenddatum':
                    today,
                    'vertrouwelijkAanduiding':
                    'OPENBAAR',
                    'auteur':
                    'Thrice',
                    # 'link': ''
                    'inhoud':
                    inhoud,
                    # 'tijdvakGeldigheid': stuf_factory.tijdvakGeldigheid(
                    #     beginGeldigheid=today,
                    # ),
                    # 'tijdstipRegistratie': '',
                    # 'extraElementend': None,
                    'isRelevantVoor': [
                        zkn_factory['VoegZaakdocumentToe-EDCZAK-kennisgeving'](
                            entiteittype='EDCZAK',
                            verwerkingssoort='T',
                            gerelateerde=zkn_factory[
                                'VoegZaakdocumentToe-ZAK-kerngegevensKennisgeving']
                            (
                                entiteittype='ZAK',
                                verwerkingssoort='I',
                                identificatie=self.zaak.zaakidentificatie,
                                omschrijving=self.zaak.omschrijving,
                                # isVan=None
                            ),
                            # titel
                            # beschrijving
                            # registratiedatum
                            # stt.volgnummer
                            # stt.omschrijving
                            # sta.datumStatusGezet
                            # tijdvakRelatie
                            # tijdvakGeldigheid
                            # tijdstipRegistratie
                            # extraElementen
                        )
                    ]
                }))
Exemplo n.º 3
0
        self.addCleanup(lambda: self._removeTree('/Unfiled'))

    def _removeTree(self, path):
        try:
            root_folder = self.client._repo.getObjectByPath(path)
        except ObjectNotFoundException:
            return
        root_folder.deleteTree()

    def assertExpectedProps(self, obj, expected: dict):
        for prop, expected_value in expected.items():
            with self.subTest(prop=prop, expected_value=expected_value):
                self.assertEqual(obj.properties[prop], expected_value)


@skipIf(on_jenkins() or should_skip_cmis_tests(),
        "Skipped while there's no Alfresco running on Jenkins")
class CMISClientTests(DMSMixin, TestCase):
    def test_boomstructuur(self):
        """
        Test dat de boomstructuur Zaken -> Zaaktype -> Zaak gemaakt wordt.
        """
        with self.assertRaises(ObjectNotFoundException):
            self.client._repo.getObjectByPath('/Zaken')

        zaak = ZaakFactory.create(
            status_set__indicatie_laatst_gezette_status=JaNee.ja,
            zaakidentificatie='123456789',
            einddatum='20171231',
            zaaktype__zaaktypeidentificatie='998877',
            zaaktype__zaaktypeomschrijving='SOAP is leuk',
        self.addCleanup(lambda: self._removeTree('/Unfiled'))

    def _removeTree(self, path):
        try:
            root_folder = self.client._repo.getObjectByPath(path)
        except ObjectNotFoundException:
            return
        root_folder.deleteTree()

    def assertExpectedProps(self, obj, expected: dict):
        for prop, expected_value in expected.items():
            with self.subTest(prop=prop, expected_value=expected_value):
                self.assertEqual(obj.properties[prop], expected_value)


@skipIf(on_jenkins() or should_skip_cmis_tests(), "Skipped while there's no Alfresco running on Jenkins")
class CMISClientTests(DMSMixin, TestCase):
    def test_boomstructuur(self):
        """
        Test dat de boomstructuur Zaken -> Zaaktype -> Zaak gemaakt wordt.
        """
        with self.assertRaises(ObjectNotFoundException):
            self.client._repo.getObjectByPath('/Zaken')

        zaak = ZaakFactory.create(
            status_set__indicatie_laatst_gezette_status=JaNee.ja,
            zaakidentificatie='123456789',
            einddatum='20171231',
            zaaktype__zaaktypeidentificatie='998877',
            zaaktype__zaaktypeomschrijving='SOAP is leuk',
        )
        self.addCleanup(lambda: self._removeTree('/Unfiled'))

    def _removeTree(self, path):
        try:
            root_folder = self.client._repo.getObjectByPath(path)
        except ObjectNotFoundException:
            return
        root_folder.deleteTree()

    def assertExpectedProps(self, obj, expected: dict):
        for prop, expected_value in expected.items():
            with self.subTest(prop=prop, expected_value=expected_value):
                self.assertEqual(obj.properties[prop], expected_value)


@skipIf(on_jenkins() or should_skip_cmis_tests(), "Skipped while there's no Alfresco running on Jenkins")
class CMISClientTests(DMSMixin, TestCase):
    def test_boomstructuur(self):
        """
        Test dat de boomstructuur Zaken -> Zaaktype -> Zaak gemaakt wordt.
        """
        with self.assertRaises(ObjectNotFoundException):
            self.client._repo.getObjectByPath('/Zaken')

        zaak = ZaakFactory.create(
            status_set__indicatie_laatst_gezette_status=JaNee.ja,
            zaakidentificatie='123456789',
            einddatum='20171231',
            zaaktype__zaaktypeidentificatie='998877',
            zaaktype__zaaktypeomschrijving='SOAP is leuk',
        )