Skip to content
Snippets Groups Projects
Select Git revision
  • 0bb227e86b6c1c912638659f0884d74f42f41c12
  • main default protected
  • release
  • OZG-7856_schadcode_scanner
  • ci-pipeline
  • OZG-7526-signatur-nicht-uebernommen
  • OZG-6223-zip-download-bug
  • OZG-7367-tooltip-extension
  • OZG-7023-OZG-6956-E2E-externe-Stellen
  • OZG-6238-npm-durch-pnpm-ersetzen
  • release-admin
  • release-info
  • OZG-6700-admin-feature-toggle
  • E2E-Updates
  • OZG-7047-tooltips
  • OZG-6957-e2e-fachstellen-oe-daten
  • OZG-7006-ZuarbeitAnfragen
  • temp_OZG-7027
  • unit-tests-hotfix
  • OZG-6731-POC-keycloakResourceService-with-multiple-stateResources
  • e2e-add-zufi-version
  • 2.26.0
  • 2.25.0
  • 2.24.2
  • 2.24.1
  • 2.24.0
  • 2.23.0
  • 2.22.0
  • 2.21.0
  • 2.20.0
  • 2.21.0-SNAPSHOT
  • 2.19.0
  • 2.18.0
  • 2.17.1
  • 1.3.0
  • release-admin-1.3.0
  • release-info-1.3.0
  • 2.17.0
  • 2.16.0
  • 2.15.0
  • release-admin-1.1.0
41 results

GoofyServerApplication.java

Blame
  • test_upload.py 4.88 KiB
    
    # encoding: utf-8
    
    import ckan.tests.factories as factories
    import ckan.tests.helpers as helpers
    from ckan import model
    from test_helpers import odsh_test
    from routes import url_for
    from nose.tools import assert_true, assert_false, assert_equal, assert_in
    from ckanext.odsh.helpers import odsh_create_checksum
    webtest_submit = helpers.webtest_submit
    
    
    class TestUpload(helpers.FunctionalTestBase):
    
        _load_plugins = ['odsh', 'spatial_metadata', 'spatial_query']
    
        def teardown(self):
            model.repo.rebuild_db()
    
        @odsh_test()
        def test_upload_empty_form_fails(self):
            # arrange
            form = self._get_package_new_form()
    
            # act
            response = self._submit_form(form)
    
            # assert
            response.mustcontain('Title: Missing value')
            response.mustcontain('Description: Missing value')
            response.mustcontain('temporal_start: empty')
    
        @odsh_test()
        def test_upload_empty_wrong_spatial_uri(self):
            # arrange
            form = self._get_package_new_form()
    
            # act
            form[self._get_field_name('spatial_uri')] = 'wrong'
            response = self._submit_form(form)
    
            # assert
            response.mustcontain('spatial_uri: uri unknown')
    
        @odsh_test()
        def test_upload_empty_wrong_date_temporal_start(self):
            # arrange
            form = self._get_package_new_form()
    
            # act
            form[self._get_field_name('temporal_start')] = '2001-12-35'
            response1 = self._submit_form(form)
            form[self._get_field_name('temporal_end')] = '2001-12-35'
            response2 = self._submit_form(form)
            form[self._get_field_name('temporal_start')] = '2001-12-01'
            response3 = self._submit_form(form)
            form[self._get_field_name('temporal_end')] = '2001-12-01'
            form[self._get_field_name('temporal_start')] = '2001-12-35'
            response4 = self._submit_form(form)
            form[self._get_field_name('temporal_start')] = '11-11-11'
            response5 = self._submit_form(form)
            form[self._get_field_name('temporal_start')] = '11-11-2011'
            response6 = self._submit_form(form)
            form[self._get_field_name('temporal_start')] = 'datum'
            response7 = self._submit_form(form)
    
            # assert
            response1.mustcontain('temporal_start: not a valid date')
            # response2.mustcontain('odsh_temporal_error_label')
            response3.mustcontain('temporal_end: not a valid date')
            response4.mustcontain('temporal_start: not a valid date')
            response5.mustcontain('temporal_start: not a valid date')
            response6.mustcontain('temporal_start: not a valid date')
    
        @odsh_test()
        def test_upload_all_fields_set(self):
            # arrange
            form = self._get_package_new_form()
            form['title'] = 'Titel'
            form['notes'] = 'notes'
            form['owner_org'] = self.org['id']
            form[self._get_field_name(
                'spatial_uri')] = 'http://dcat-ap.de/def/politicalGeocoding/districtKey/01001'
            form[self._get_field_name('issued')] = '2019-01-29'
            form[self._get_field_name('temporal_start')] = '2019-01-29'
            form[self._get_field_name('temporal_end')] = '2019-02-02'
            form['license_id'] = 'http://dcat-ap.de/def/licenses/dl-by-de/2.0'
            form[self._get_field_name('licenseAttributionByText')].value = 'text'
    
            # act
            response = self._submit_and_follow_form(form)
    
            # assert
            assert_true('resource-edit' in response.forms)
    
        @odsh_test()
        def test_upload_license(self):
            # arrange
            form = self._get_package_new_form()
    
            # act
            form['license_id'] = 'http://dcat-ap.de/def/licenses/dl-by-de/2.0'
            form[self._get_field_name('licenseAttributionByText')].value = ''
            response1 = self._submit_form(form)
    
            # assert
            response1.mustcontain('licenseAttributionByText: empty not allowed')
    
        def _get_field_name(self, field):
            checksum = odsh_create_checksum(field)
            return 'extras__' + str(checksum) + '__value'
    
        def _get_field_key(self, field):
            checksum = odsh_create_checksum(field)
            return 'extras__' + str(checksum) + '__key'
    
        def _submit_form(self, form):
            return webtest_submit(form, 'save', status=200, extra_environ=self.env)
    
        def _submit_and_follow_form(self, form):
            app = self._get_test_app()
            # return webtest_submit(form, 'save', status=200, extra_environ=self.env)
            return helpers.submit_and_follow(app, form, self.env, 'save')
    
        def _get_package_new_form(self):
            app = self._get_test_app()
            user = factories.User()
            self.org = factories.Organization(
                name="my-org",
                users=[{'name': user['id'], 'capacity': 'admin'}]
            )
            self.env = {'REMOTE_USER': user['name'].encode('ascii')}
            response = app.get(
                url=url_for(controller='package', action='new'),
                extra_environ=self.env,
            )
            return response.forms['dataset-edit']