Пример #1
0
    def test_it_sets_cors_headers(self, pyramid_request, testview,
                                  set_cors_headers):
        cors_policy = policy()

        cors_policy(testview)(None, pyramid_request)

        assert set_cors_headers.called
Пример #2
0
    def test_it_returns_set_cors_headers_value(self, pyramid_request, testview,
                                               set_cors_headers):
        cors_policy = policy()

        response = cors_policy(testview)(None, pyramid_request)

        assert response == set_cors_headers.return_value
Пример #3
0
    def test_it_returns_wrapped_view_function_response(self, pyramid_request,
                                                       testview):
        cors_policy = policy()

        response = cors_policy(testview)(None, pyramid_request)

        assert response.body == 'OK'
Пример #4
0
    def test_it_calls_wrapped_view_for_preflight_request_when_disabled(
            self, pyramid_request, testview):
        cors_policy = policy(allow_preflight=False)
        pyramid_request.request_method = 'OPTIONS'

        cors_policy(testview)(None, pyramid_request)

        assert testview.called
Пример #5
0
    def test_it_calls_wrapped_view_for_preflight_request_when_disabled(self,
                                                                       pyramid_request,
                                                                       testview):
        cors_policy = policy(allow_preflight=False)
        pyramid_request.request_method = 'OPTIONS'

        cors_policy(testview)(None, pyramid_request)

        assert testview.called
Пример #6
0
    def test_it_returns_set_cors_headers_value_for_preflight_request_when_enabled(
            self, pyramid_request, testview, set_cors_headers):
        cors_policy = policy(allow_preflight=True)
        pyramid_request.method = 'OPTIONS'
        pyramid_request.headers['Origin'] = 'https://example.org'
        pyramid_request.headers['Access-Control-Request-Method'] = 'GET'

        response = cors_policy(testview)(None, pyramid_request)

        assert response == set_cors_headers.return_value
Пример #7
0
    def test_it_skips_wrapped_view_for_preflight_request_when_enabled(
            self, pyramid_request, testview):
        cors_policy = policy(allow_preflight=True)
        pyramid_request.method = 'OPTIONS'
        pyramid_request.headers['Origin'] = 'https://example.org'
        pyramid_request.headers['Access-Control-Request-Method'] = 'GET'

        cors_policy(testview)(None, pyramid_request)

        assert not testview.called
Пример #8
0
    def test_it_returns_set_cors_headers_value_for_preflight_request_when_enabled(
            self, pyramid_request, testview, set_cors_headers):
        cors_policy = policy(allow_preflight=True)
        pyramid_request.method = 'OPTIONS'
        pyramid_request.headers['Origin'] = 'https://example.org'
        pyramid_request.headers['Access-Control-Request-Method'] = 'GET'

        response = cors_policy(testview)(None, pyramid_request)

        assert response == set_cors_headers.return_value
Пример #9
0
    def test_it_skips_wrapped_view_for_preflight_request_when_enabled(self,
                                                                      pyramid_request,
                                                                      testview):
        cors_policy = policy(allow_preflight=True)
        pyramid_request.method = 'OPTIONS'
        pyramid_request.headers['Origin'] = 'https://example.org'
        pyramid_request.headers['Access-Control-Request-Method'] = 'GET'

        cors_policy(testview)(None, pyramid_request)

        assert not testview.called
Пример #10
0
from memex import cors
from memex import models
from memex.events import AnnotationEvent
from memex.presenters import AnnotationJSONPresenter
from memex.presenters import AnnotationJSONLDPresenter
from memex import search as search_lib
from memex import schemas
from memex import storage

_ = i18n.TranslationStringFactory(__package__)

cors_policy = cors.policy(
    allow_headers=(
        'Authorization',
        'Content-Type',
        'X-Annotator-Auth-Token',
        'X-Client-Id',
    ),
    allow_methods=('HEAD', 'GET', 'POST', 'PUT', 'DELETE'),
    allow_preflight=True)


class APIError(Exception):

    """Base exception for problems handling API requests."""

    def __init__(self, message, status_code=500):
        self.status_code = status_code
        super(APIError, self).__init__(message)

Пример #11
0
    def test_it_returns_set_cors_headers_value(self, pyramid_request, testview, set_cors_headers):
        cors_policy = policy()

        response = cors_policy(testview)(None, pyramid_request)

        assert response == set_cors_headers.return_value
Пример #12
0
    def test_it_sets_cors_headers(self, pyramid_request, testview, set_cors_headers):
        cors_policy = policy()

        cors_policy(testview)(None, pyramid_request)

        assert set_cors_headers.called
Пример #13
0
    def test_it_returns_wrapped_view_function_response(self, pyramid_request, testview):
        cors_policy = policy()

        response = cors_policy(testview)(None, pyramid_request)

        assert response.body == 'OK'
Пример #14
0
    def test_it_calls_wrapped_view_function(self, pyramid_request, testview):
        cors_policy = policy()

        cors_policy(testview)(None, pyramid_request)

        assert testview.called
Пример #15
0
# -*- coding: utf-8 -*-

from __future__ import unicode_literals

from pyramid.view import view_config

from memex import cors

cors_policy = cors.policy(allow_headers=(
    'Authorization',
    'Content-Type',
),
                          allow_methods=('HEAD', 'GET', 'POST', 'PUT',
                                         'DELETE'),
                          allow_preflight=True)


def handle_exception(request):
    """Handle an uncaught exception for the passed request."""
    request.response.status_int = 500
    request.sentry.captureException()
    # In debug mode we should just reraise, so that the exception is caught by
    # the debug toolbar.
    if request.debug:
        raise


def json_view(**settings):
    """A view configuration decorator with JSON defaults."""
    settings.setdefault('accept', 'application/json')
    settings.setdefault('renderer', 'json')
Пример #16
0
    def test_it_calls_wrapped_view_function(self, pyramid_request, testview):
        cors_policy = policy()

        cors_policy(testview)(None, pyramid_request)

        assert testview.called
Пример #17
0
from memex import cors
from memex import models
from memex.events import AnnotationEvent
from memex.presenters import AnnotationJSONPresenter
from memex.presenters import AnnotationJSONLDPresenter
from memex import search as search_lib
from memex import schemas
from memex import storage

_ = i18n.TranslationStringFactory(__package__)

cors_policy = cors.policy(allow_headers=(
    'Authorization',
    'Content-Type',
    'X-Annotator-Auth-Token',
    'X-Client-Id',
),
                          allow_methods=('HEAD', 'GET', 'POST', 'PUT',
                                         'DELETE'))


class APIError(Exception):
    """Base exception for problems handling API requests."""
    def __init__(self, message, status_code=500):
        self.status_code = status_code
        super(APIError, self).__init__(message)


class PayloadError(APIError):
    """Exception raised for API requests made with missing/invalid payloads."""
    def __init__(self):
Пример #18
0
Файл: view.py Проект: nlisgo/h
# -*- coding: utf-8 -*-

from __future__ import unicode_literals

from pyramid.view import view_config

from memex import cors

cors_policy = cors.policy(
    allow_headers=(
        'Authorization',
        'Content-Type',
    ),
    allow_methods=('HEAD', 'GET', 'POST', 'PUT', 'DELETE'),
    allow_preflight=True)


def handle_exception(request):
    """Handle an uncaught exception for the passed request."""
    request.response.status_int = 500
    request.sentry.captureException()
    # In debug mode we should just reraise, so that the exception is caught by
    # the debug toolbar.
    if request.debug:
        raise


def json_view(**settings):
    """A view configuration decorator with JSON defaults."""
    settings.setdefault('accept', 'application/json')
    settings.setdefault('renderer', 'json')