Ejemplo n.º 1
0
def configure_app(app, user_source_filepath=None, contains=None):

    CORS(app)

    view_func_creators = {
        'tile': flask_to_tile,
        'image': flask_to_image,
        'wms': flask_to_wms,
        'geojson': flask_to_geojson,
    }

    services = []
    for service in get_services(config_path=user_source_filepath, contains=contains):

        services.append(service)

        view_func = view_func_creators[service.service_type]

        # add operational endpoint
        app.add_url_rule(service.service_url,
                         service.name,
                         partial(view_func, source=service.source))

        # add service page endpoint
        app.add_url_rule(service.service_page_url,
                         service.service_page_name,
                         partial(service_page, service=service))

    app.add_url_rule('/', 'home', partial(index_page, services=services))
    hello(services)
    return app
Ejemplo n.º 2
0
def pytest_configure():
    from django.conf import settings

    MIDDLEWARE = (
        'django.middleware.common.CommonMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
    )

    settings.configure(
        DEBUG_PROPAGATE_EXCEPTIONS=True,
        DATABASES={
            'default': {
                'ENGINE': 'django.db.backends.sqlite3',
                'NAME': ':memory:'
            }
        },
        ALLOWED_HOSTS='*',
        SECRET_KEY='not very secret in tests',
        STATIC_URL='/static/',
        ROOT_URLCONF='tests.urls',
        TEMPLATES=[
            {
                'BACKEND': 'django.template.backends.django.DjangoTemplates',
                'APP_DIRS': True,
            },
        ],
        MIDDLEWARE=MIDDLEWARE,
        MIDDLEWARE_CLASSES=MIDDLEWARE,
        INSTALLED_APPS=(
            'django.contrib.auth',
            'django.contrib.contenttypes',
            'django.contrib.sessions',
            'django.contrib.sites',
            'django.contrib.staticfiles',

            'django_mapshader',

            'tests',
        ),
        SERVICES=list(get_services()),
        MAPSHADER_CONFIG=None,
    )

    try:
        import django
        django.setup()
    except AttributeError:
        pass
Ejemplo n.º 3
0
app_name = 'django_mapshader'
urlpatterns = []

view_func_creators = {
    'tile': views.get_tile,
    'image': views.get_image,
    'wms': views.get_wms,
    'geojson': views.get_geojson,
    'legend': views.get_legend,
}

if settings.SERVICES:
    default_services = settings.SERVICES
else:
    default_services = get_services(config_path=get_config_file(),
                                    contains=None)

services = []
for service in default_services:

    services.append(service)

    view_func = view_func_creators[service.service_type]

    # add operational endpoint
    urlpatterns.append(
        path(service.service_url[1:],
             partial(view_func, source=service.source),
             name=slugify(service.name)))

    # add legend endpoint
Ejemplo n.º 4
0
import json
import pytest

from mapshader.flask_app import create_app

from mapshader.sources import world_countries_source
from mapshader.sources import world_cities_source
from mapshader.sources import nybb_source

from mapshader.sources import get_services

DEFAULT_SERVICES = get_services()

CLIENT = create_app().test_client()


@pytest.mark.parametrize(
    "service", [s for s in DEFAULT_SERVICES if s.service_type == 'geojson'])
def test_default_geojson(service):

    resp = CLIENT.get(service.default_url)
    assert resp.status_code == 200

    data = json.loads(resp.data)
    assert isinstance(data, dict)


@pytest.mark.parametrize("service", [s for s in DEFAULT_SERVICES])
def test_legend(service):

    resp = CLIENT.get(service.legend_url)