Ejemplo n.º 1
0
 def setUp(self):
     # creates user object in db
     self.user_password = PASSWORD
     self.user = create_superadminuser()
     self.new_password = "******"
     self.client = Client()
     self.client.login(username=self.user.username, password=self.user_password)
Ejemplo n.º 2
0
    def setUpTestData(cls):
        return
        """ Initial creation of objects that are needed during the tests

        Returns:

        """
        cls.user = create_superadminuser()

        cls.group = cls.user.groups.first()

        cls.test_wms = {
            "title":
            "Karte RP",
            "version":
            OGCServiceVersionEnum.V_1_1_1,
            "type":
            OGCServiceEnum.WMS,
            "uri":
            "http://geo5.service24.rlp.de/wms/karte_rp.fcgi?REQUEST=GetCapabilities&VERSION=1.1.1&SERVICE=WMS",
        }

        cls.test_wfs = {
            "title":
            "Nutzung",
            "version":
            OGCServiceVersionEnum.V_2_0_0,
            "type":
            OGCServiceEnum.WFS,
            "uri":
            "http://geodaten.naturschutz.rlp.de/kartendienste_naturschutz/mod_ogc/wfs_getmap.php?mapfile=group_gdide&REQUEST=GetCapabilities&VERSION=2.0.0&SERVICE=WFS",
        }

        # Since the registration of a service is performed async in an own process, the testing is pretty hard.
        # Therefore in here we won't perform the regular route testing, but rather run unit tests and check whether the
        # important components work as expected.
        # THIS MEANS WE CAN NOT CHECK PERMISSIONS IN HERE; SINCE WE TESTS ON THE LOWER LEVEL OF THE PROCESS

        ## Creating a new service model instance for wms
        service = service_helper.create_service(cls.test_wms["type"],
                                                cls.test_wms["version"],
                                                cls.test_wms["uri"], cls.user,
                                                cls.group)
        cls.service_wms = service

        ## Creating a new service model instance for wfs
        service = service_helper.create_service(cls.test_wfs["type"],
                                                cls.test_wfs["version"],
                                                cls.test_wfs["uri"], cls.user,
                                                cls.group)
        cls.service_wfs = service

        cls.cap_doc_wms = Document.objects.get(
            metadata=cls.service_wms.metadata,
            document_type=DocumentEnum.CAPABILITY.value,
        )
        cls.cap_doc_wfs = Document.objects.get(
            metadata=cls.service_wfs.metadata,
            document_type=DocumentEnum.CAPABILITY.value,
        )
Ejemplo n.º 3
0
    def setUp(self):
        # creates user object in db
        self.user_password = PASSWORD
        self.groups = create_guest_groups(how_much_groups=9)
        self.user = create_superadminuser(groups=self.groups)
        self.orgas = create_non_autogenerated_orgas(user=self.user,
                                                    how_much_orgas=10)
        # Set individual organization for each group
        i = 0
        for group in self.groups:
            group.organization = self.orgas[i]
            group.save()
            i = i + 1

        # Public group needs an organization for this test
        public_orga = create_public_organization(user=self.user, )[0]
        public_group = MrMapGroup.objects.get(is_public_group=True)
        public_group.organization = public_orga
        public_group.save()

        self.user.organization = self.orgas[0]
        self.user.save()
        self.user.refresh_from_db()

        self.request_factory = RequestFactory()
        # Create an instance of a GET request.
        self.request = self.request_factory.get('/')
        # Recall that middleware are not supported. You can simulate a
        # logged-in user by setting request.user manually.
        self.request.user = self.user

        self.groups_url_path_name = STRUCTURE_INDEX_GROUP
        self.orgs_url_path_name = STRUCTURE_INDEX_ORGANIZATION
Ejemplo n.º 4
0
 def setUp(self):
     # creates user object in db
     self.user_password = PASSWORD
     self.user = create_superadminuser()
     self.contact_data = get_contact_data()
     self.client = Client()
     self.client.login(username=self.user.username, password=self.user_password)
Ejemplo n.º 5
0
 def setUp(self):
     self.user = create_superadminuser()
     self.wms_metadata = create_wms_service(group=self.user.groups.first(),
                                            how_much_sublayers=10,
                                            how_much_services=2)
     self.wfs_metadata = create_wfs_service(group=self.user.groups.first(),
                                            how_much_featuretypes=10,
                                            how_much_services=2)
Ejemplo n.º 6
0
    def setUp(self):
        return
        self.user = create_superadminuser()
        self.client = Client()
        self.client.login(username=self.user.username, password=PASSWORD)

        self.wms_metadatas = create_wms_service(group=self.user.groups.first(),
                                                how_much_services=1)
Ejemplo n.º 7
0
 def setUp(self):
     self.user = create_superadminuser()
     self.client = Client()
     self.client.login(username=self.user.username, password=PASSWORD)
     # workaround to login a user for WebsocketCommunicator since login is not implemented for this
     # ApplicationCommunicator (see: https://github.com/django/channels/issues/903#issuecomment-365448451)
     self.headers = [(b'origin', b'http://127.0.0.1:8000'),
                     (b'cookie',
                      self.client.cookies.output(header='',
                                                 sep='; ').encode())]
Ejemplo n.º 8
0
 def setUp(self):
     # creates user object in db
     self.user_password = PASSWORD
     self.user = create_superadminuser()
     self.client = Client()
     self.client.login(username=self.user.username, password=self.user_password)
     create_wms_service(group=self.user.groups.first(), how_much_services=10)
     self.service_md = Metadata.objects.filter(
         metadata_type=MetadataEnum.SERVICE.value
     ).first()
Ejemplo n.º 9
0
    def setUp(self):
        # requires services
        self.user = create_superadminuser()
        self.client = Client()
        self.client.login(username=self.user.username, password=PASSWORD)
        create_wms_service(group=self.user.groups.first(),
                           how_much_services=10)
        self.api_catalogue_uri = reverse("api:catalogue-list")

        # Get some fragment from a metadata title as value for parameter q
        self.q_param = Metadata.objects.all().first().title
        self.q_param = self.q_param[int(len(self.q_param) / 2):-1]
Ejemplo n.º 10
0
    def setUp(self):
        self.user = create_superadminuser()
        self.client = Client()
        self.client.login(username=self.user.username, password=PASSWORD)

        self.request_factory = RequestFactory()
        # Create a bunch of random keywords
        create_keywords(20)
        create_categories(10)

        self.categories = Category.objects.all()
        self.keywords = Keyword.objects.all()
Ejemplo n.º 11
0
    def setUp(self):
        self.user = create_superadminuser()
        self.client = Client()
        self.client.login(username=self.user.username, password=PASSWORD)
        create_wms_service(group=self.user.groups.first(),
                           how_much_services=10)

        # Make sure services are activated
        services = Service.objects.all()
        for service in services:
            activate_service(service, True)

        self.test_id = services.first().metadata.identifier
Ejemplo n.º 12
0
    def setUp(self):
        self.user = create_superadminuser()
        self.group = self.user.groups.first()
        self.metadata = create_wms_service(self.group, how_much_services=10)[0]

        # Declare timeout span
        self.timeout_delta = timezone.timedelta(seconds=10)

        # For new service testing
        create_non_autogenerated_orgas(self.user, 3)
        self.org = Organization.objects.all().first()

        # For securing service
        create_operation(OGCOperationEnum.GET_MAP.value)
        self.operation = RequestOperation.objects.all().first()
Ejemplo n.º 13
0
    def test_removing_of_updatecandidates(self):
        older_than = 10

        user = create_superadminuser()
        organizations = create_non_autogenerated_orgas(user=user)

        wms_metadatas = create_wms_service(group=user.groups.first(),
                                           contact=organizations[0],
                                           how_much_services=10)
        wfs_metadatas = create_wfs_service(group=user.groups.first(),
                                           contact=organizations[0],
                                           how_much_services=10)

        for wms_metadata in wms_metadatas:
            update_candidate_metadata = create_wms_service(
                group=user.groups.first(),
                contact=organizations[0],
                how_much_services=1,
                is_update_candidate_for=wms_metadata.service,
                user=user)

            update_candidate_metadata[
                0].service.last_modified = timezone.localtime(
                ) - timezone.timedelta(days=older_than, )
            update_candidate_metadata[0].service.save(
                update_last_modified=False)

        for wfs_metadata in wfs_metadatas:
            update_candidate_metadata = create_wfs_service(
                group=user.groups.first(),
                contact=organizations[0],
                how_much_services=1,
                is_update_candidate_for=wfs_metadata.service,
                user=user)
            update_candidate_metadata[
                0].service.last_modified = timezone.localtime(
                ) - timezone.timedelta(days=older_than)
            update_candidate_metadata[0].service.save(
                update_last_modified=False)

        out = StringIO()
        call_command('rm_updatecandidates', stdout=out, ot=older_than)
        self.assertIn(
            'Deleted 20 objects older than {} days'.format(older_than),
            out.getvalue())

        services_count = Service.objects.filter(is_root=True).count()
        self.assertEqual(services_count, 20)
Ejemplo n.º 14
0
    def setUp(self):
        self.default_user = create_testuser()
        self.user = create_superadminuser()
        self.user.organization = create_non_autogenerated_orgas(user=self.user, how_much_orgas=1)[0]
        self.user.save()

        self.client = Client()
        self.client.login(username=self.user.username, password=PASSWORD)
        self.request_factory = RequestFactory()

        self.wms_services = create_wms_service(
            group=self.user.groups.first(),
            how_much_services=1
        )

        # Setup for log proxy test
        self.metadata = Metadata.objects.all().first()
        self.metadata.use_proxy_uri = True
        self.metadata.log_proxy_access = True
        self.metadata.save()
        self.metadata.refresh_from_db()
Ejemplo n.º 15
0
    def test_proxy_log_table_sorting(self):
        """ Run test to check the sorting functionality of the ProxyLogTable

        Return:

        """
        groups = create_guest_groups(how_much_groups=9)
        user = create_superadminuser(groups=groups)
        request_factory = RequestFactory()
        # Create an instance of a GET request.
        request = request_factory.get('/')
        # Recall that middleware are not supported. You can simulate a
        # logged-in user by setting request.user manually.
        request.user = user
        create_proxy_logs(user, 10)

        # Get all logs, make sure the initial set is ordered by random
        logs = ProxyLog.objects.all().order_by("?")
        sorting_param = "sort"
        table = ProxyLogTable(data=logs,
                              order_by_field=sorting_param,
                              request=request)
        # Check table sorting
        sorting_implementation_failed, sorting_results = check_table_sorting(
            table=table,
            url_path_name=SERVICE_INDEX_LOG,
        )

        for key, val in sorting_results.items():
            self.assertTrue(
                val,
                msg="ProxyLog table sorting not correct for column '{}'".
                format(key))
        for key, val in sorting_implementation_failed.items():
            self.assertFalse(
                val,
                msg="ProxyLog table sorting leads to error for column '{}'".
                format(key))
Ejemplo n.º 16
0
    def setUp(self):
        # requires services
        self.user = create_superadminuser()
        self.client = Client()
        self.client.login(username=self.user.username, password=PASSWORD)
        create_wms_service(group=self.user.groups.first(),
                           how_much_services=10)

        # Default elements of json response
        self.default_response_elements = [
            "count",
            "next",
            "previous",
            "results",
        ]

        # 'name-list' | 'name-detail' is the naming convention of DRF
        # The values declare what we expect from a simple request for this API without further parameters
        self.available_apis = {
            "catalogue-list":
            Metadata.objects.filter(is_active=True),
            "metadata-list":
            Metadata.objects.filter(is_active=True),
            "suggestion-list":
            Keyword.objects.all()[:SUGGESTIONS_MAX_RESULTS],
            "category-list":
            Category.objects.all(),
            "organization-list":
            Organization.objects.filter(),
            "service-list":
            Service.objects.filter(parent_service=None,
                                   metadata__is_active=True),
            "layer-list":
            Layer.objects.filter(metadata__is_active=True),
            "group-list":
            MrMapGroup.objects.filter(),
        }
Ejemplo n.º 17
0
 def setUp(self):
     self.user_password = PASSWORD
     self.active_user = create_superadminuser()
     client = Client()
     client.login(username=self.active_user.username, password=self.user_password)
Ejemplo n.º 18
0
 def setUp(self):
     self.user_password = PASSWORD
     self.user = create_superadminuser()
     self.wms_services = create_wms_service(group=self.user.groups.first(),
                                            how_much_services=1)
     self.monitoring_run = create_monitoring_run()[0]
Ejemplo n.º 19
0
 def setUp(self):
     self.user = create_superadminuser()
     self.root_metadata = create_wms_service(group=self.user.groups.first(),
                                             how_much_sublayers=100,
                                             how_much_services=1)[0]
Ejemplo n.º 20
0
 def setUp(self):
     self.contact_data = get_contact_data()
     # creates user object in db
     self.user_password = PASSWORD
     self.user = create_superadminuser()
Ejemplo n.º 21
0
 def setUp(self):
     # creates user object in db
     self.user_password = PASSWORD
     self.user = create_superadminuser()