Beispiel #1
0
    def test_create_wms_service(self):
        catalog, created = Catalog.objects.get_or_create(name="hypermap",
                                                         slug="hypermap",
                                                         url="search_api")

        # create the service
        service = Service(type='OGC:WMS',
                          url='http://wms.example.com/ows-invalid?',
                          catalog=catalog)
        service.save()
        service.refresh_from_db()

        # check service is invalid
        self.assertEqual(service.is_valid, False)

        # check layers number
        self.assertEqual(service.layer_set.all().count(), 3)

        # check all layers are invalid
        for layer in service.layer_set.all():
            self.assertEqual(layer.is_valid, False)
Beispiel #2
0
    def test_create_wms_service(self):
        catalog, created = Catalog.objects.get_or_create(
            name="hypermap", slug="hypermap",
            url="search_api"
        )

        # create the service
        service = Service(
            type='OGC:WMS',
            url='http://wms.example.com/ows-invalid?',
            catalog=catalog
        )
        service.save()
        service.refresh_from_db()

        # check service is invalid
        self.assertEqual(service.is_valid, False)

        # check layers number
        self.assertEqual(service.layer_set.all().count(), 3)

        # check all layers are invalid
        for layer in service.layer_set.all():
            self.assertEqual(layer.is_valid, False)
Beispiel #3
0
    def test_create_worldmap_service(self):

        catalog, created = Catalog.objects.get_or_create(
            name="hypermap", slug="hypermap",
            url="search_api"
        )

        # create the service
        service = Service(
            type='Hypermap:WorldMap',
            url='http://worldmap.harvard.edu/',
            catalog=catalog
        )
        service.save()
        service.refresh_from_db()

        # check title is correct
        self.assertTrue(service.title, 'Harvard WorldMap')

        # check layer number
        self.assertEqual(service.layer_set.all().count(), 10)

        # check deleted layers number
        self.assertEqual(service.layer_set.filter(was_deleted=True).count(), 2)

        # check layer geonode:River_basin_num2 (public)
        layer_0 = service.layer_set.get(name='geonode:River_basin_num2')
        self.assertEqual(layer_0.title, 'China River Basins')
        self.assertTrue(layer_0.is_public)
        self.assertEqual(layer_0.layerwm.temporal_extent_start, '1971-02-06')
        self.assertEqual(layer_0.layerwm.temporal_extent_end, '1974-09-30')
        self.assertEqual(layer_0.layerwm.category, 'Rivers, Streams, Lakes')
        self.assertEqual(layer_0.layerwm.username, 'matt')
        self.assertEqual(layer_0.keywords.all().count(), 4)
        self.assertEqual(layer_0.service.srs.all().count(), 3)
        self.assertEqual(layer_0.check_set.all().count(), 1)

        # test dates #1
        layer_with_many_dates = service.layer_set.get(name='geonode:layer_with_many_dates')
        # this layer has the following dates
        # in title: 1999, 1882
        # in abstract: 1632, 1661, 1992, 1338
        # from metadata: temporal_extent_start: 2011-01-24
        # from metadata: temporal_extent_end: 2015-09-30
        # check detected dates
        for date in ('1999-01-01', '1882-01-01', '1632-01-01', '1661-01-01', '1992-01-01'):
            date_filtered = layer_with_many_dates.layerdate_set.filter(date=date)
            self.assertEqual(date_filtered.filter(type=DATE_DETECTED).count(), 1)
        # check metadata dates
        for date in ('2011-01-24', '2015-09-30'):
            date_filtered = layer_with_many_dates.layerdate_set.filter(date=date)
            self.assertEqual(
                             date_filtered.filter(type=DATE_FROM_METADATA).count(), 1)

        # test dates #2
        layer_with_few_dates = service.layer_set.get(name='geonode:layer_with_few_dates')
        # this layer has the following dates
        # in title: 1990
        # in abstract: 1990, 1996, 2000
        # from metadata: temporal_extent_start: 1990-01-01
        # from metadata: temporal_extent_end: Date in invalid format
        # check detected dates
        for date in ('1990-01-01', '1996-01-01', '2000-01-01'):
            self.assertEqual(layer_with_few_dates.layerdate_set.filter(date=date).filter(type=DATE_DETECTED).count(), 1)
        # check metadata dates
        for date in ('1990-01-01', ):

            date_filtered = layer_with_few_dates.layerdate_set.filter(date=date)
            self.assertEqual(date_filtered.filter(type=DATE_FROM_METADATA).count(), 1)

        # test dates #3
        layer_with_complex_dates = service.layer_set.get(name='geonode:layer_with_complex_dates')
        # this layer has the following dates
        # in abstract: 1900 BCE, 2000 BCE, Xia dynasty
        # from metadata: temporal_extent_start: -1900-01-01
        # from metadata: temporal_extent_end: -2000-01-01
        for date in ('-1900-01-01', '-2000-01-01', '-1600-01-01', '-2100-01-01'):
            date_filtered = layer_with_complex_dates.layerdate_set.filter(date=date)
            self.assertEqual(date_filtered.filter(type=DATE_DETECTED).count(), 1)
        # check metadata dates
        for date in ('-1900-01-01', '-2000-01-01', ):
            date_filtered = layer_with_complex_dates.layerdate_set.filter(date=date)
            self.assertEqual(date_filtered.filter(type=DATE_FROM_METADATA).count(), 1)

        # test dates #4
        layer_with_dates_in_abstract = service.layer_set.get(name='geonode:layer_with_dates_in_abstract')
        # this layer has the following dates
        # in abstract: 1901, 1902
        for date in ('1901-01-01', '1902-01-01'):
            self.assertEqual(
                             layer_with_dates_in_abstract.layerdate_set.filter(
                                date=date).filter(type=DATE_DETECTED).count(), 1)

        # test dates #5
        layer_with_html_tag = service.layer_set.get(name='geonode:layer_with_html_tag')
        self.assertEqual(layer_with_html_tag.layerdate_set.filter(date=date).filter(type=DATE_DETECTED).count(), 0)

        # check layer geonode:layer_with_many_dates (private)
        layer_1 = service.layer_set.get(name='geonode:layer_with_many_dates')
        self.assertFalse(layer_1.is_public)

        # test that if creating the service and is already exiting it is not being duplicated
        # create the service
        def create_duplicated_service():
            duplicated_service = Service(
                type='Hypermap:WorldMap',
                url='http://worldmap.harvard.edu/'
            )
            duplicated_service.save()

        self.assertRaises(Exception, create_duplicated_service)
Beispiel #4
0
    def test_create_worldmap_service(self):

        catalog, created = Catalog.objects.get_or_create(name="hypermap",
                                                         slug="hypermap",
                                                         url="search_api")

        # create the service
        service = Service(type='Hypermap:WorldMap',
                          url='http://worldmap.harvard.edu/',
                          catalog=catalog)
        service.save()
        service.refresh_from_db()

        # check title is correct
        self.assertTrue(service.title, 'Harvard WorldMap')

        # check layer number
        self.assertEqual(service.layer_set.all().count(), 10)

        # check deleted layers number
        self.assertEqual(service.layer_set.filter(was_deleted=True).count(), 2)

        # check layer geonode:River_basin_num2 (public)
        layer_0 = service.layer_set.get(name='geonode:River_basin_num2')
        self.assertEqual(layer_0.title, 'China River Basins')
        self.assertTrue(layer_0.is_public)
        self.assertEqual(layer_0.layerwm.temporal_extent_start, '1971-02-06')
        self.assertEqual(layer_0.layerwm.temporal_extent_end, '1974-09-30')
        self.assertEqual(layer_0.layerwm.category, 'Rivers, Streams, Lakes')
        self.assertEqual(layer_0.layerwm.username, 'matt')
        self.assertEqual(layer_0.keywords.all().count(), 4)
        self.assertEqual(layer_0.service.srs.all().count(), 3)
        self.assertEqual(layer_0.check_set.all().count(), 1)

        # test dates #1
        layer_with_many_dates = service.layer_set.get(
            name='geonode:layer_with_many_dates')
        # this layer has the following dates
        # in title: 1999, 1882
        # in abstract: 1632, 1661, 1992, 1338
        # from metadata: temporal_extent_start: 2011-01-24
        # from metadata: temporal_extent_end: 2015-09-30
        # check detected dates
        for date in ('1999-01-01', '1882-01-01', '1632-01-01', '1661-01-01',
                     '1992-01-01'):
            date_filtered = layer_with_many_dates.layerdate_set.filter(
                date=date)
            self.assertEqual(
                date_filtered.filter(type=DATE_DETECTED).count(), 1)
        # check metadata dates
        for date in ('2011-01-24', '2015-09-30'):
            date_filtered = layer_with_many_dates.layerdate_set.filter(
                date=date)
            self.assertEqual(
                date_filtered.filter(type=DATE_FROM_METADATA).count(), 1)

        # test dates #2
        layer_with_few_dates = service.layer_set.get(
            name='geonode:layer_with_few_dates')
        # this layer has the following dates
        # in title: 1990
        # in abstract: 1990, 1996, 2000
        # from metadata: temporal_extent_start: 1990-01-01
        # from metadata: temporal_extent_end: Date in invalid format
        # check detected dates
        for date in ('1990-01-01', '1996-01-01', '2000-01-01'):
            self.assertEqual(
                layer_with_few_dates.layerdate_set.filter(date=date).filter(
                    type=DATE_DETECTED).count(), 1)
        # check metadata dates
        for date in ('1990-01-01', ):

            date_filtered = layer_with_few_dates.layerdate_set.filter(
                date=date)
            self.assertEqual(
                date_filtered.filter(type=DATE_FROM_METADATA).count(), 1)

        # test dates #3
        layer_with_complex_dates = service.layer_set.get(
            name='geonode:layer_with_complex_dates')
        # this layer has the following dates
        # in abstract: 1900 BCE, 2000 BCE, Xia dynasty
        # from metadata: temporal_extent_start: -1900-01-01
        # from metadata: temporal_extent_end: -2000-01-01
        for date in ('-1900-01-01', '-2000-01-01', '-1600-01-01',
                     '-2100-01-01'):
            date_filtered = layer_with_complex_dates.layerdate_set.filter(
                date=date)
            self.assertEqual(
                date_filtered.filter(type=DATE_DETECTED).count(), 1)
        # check metadata dates
        for date in (
                '-1900-01-01',
                '-2000-01-01',
        ):
            date_filtered = layer_with_complex_dates.layerdate_set.filter(
                date=date)
            self.assertEqual(
                date_filtered.filter(type=DATE_FROM_METADATA).count(), 1)

        # test dates #4
        layer_with_dates_in_abstract = service.layer_set.get(
            name='geonode:layer_with_dates_in_abstract')
        # this layer has the following dates
        # in abstract: 1901, 1902
        for date in ('1901-01-01', '1902-01-01'):
            self.assertEqual(
                layer_with_dates_in_abstract.layerdate_set.filter(
                    date=date).filter(type=DATE_DETECTED).count(), 1)

        # test dates #5
        layer_with_html_tag = service.layer_set.get(
            name='geonode:layer_with_html_tag')
        self.assertEqual(
            layer_with_html_tag.layerdate_set.filter(date=date).filter(
                type=DATE_DETECTED).count(), 0)

        # check layer geonode:layer_with_many_dates (private)
        layer_1 = service.layer_set.get(name='geonode:layer_with_many_dates')
        self.assertFalse(layer_1.is_public)

        # test that if creating the service and is already exiting it is not being duplicated
        # create the service
        def create_duplicated_service():
            duplicated_service = Service(type='Hypermap:WorldMap',
                                         url='http://worldmap.harvard.edu/')
            duplicated_service.save()

        self.assertRaises(Exception, create_duplicated_service)