From 4da5ea48e7caf48b44e7dcd6de26caba90ccba0d Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 21 Jan 2021 15:58:04 +0100 Subject: [PATCH 1/2] #81 geef 400 bij geen uri --- .travis.yml | 4 +--- pyramid_urireferencer/views.py | 4 +++- tests/test_views.py | 29 +++++++++++++++++++++++++---- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index f87320c..3852c9d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,7 @@ language: python python: - "2.7" - - "3.3" - - "3.4" - - "3.5" + - "3.6" env: - LC_ALL=en_US.utf-8 install: diff --git a/pyramid_urireferencer/views.py b/pyramid_urireferencer/views.py index c2cfe0f..b7f5670 100644 --- a/pyramid_urireferencer/views.py +++ b/pyramid_urireferencer/views.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- - +from pyramid.httpexceptions import HTTPBadRequest from pyramid.view import view_config from pyramid_urireferencer import get_referencer @@ -20,4 +20,6 @@ class RestView(ApplicatieView): class ReferencesPluginView(RestView): @view_config(route_name='references', renderer='json_item', accept='application/json') def get_references(self): + if not self.request.params.get('uri'): + raise HTTPBadRequest('Uri is required.') return get_referencer(self.request.registry).references(self.request.params.get('uri'), self.request) diff --git a/tests/test_views.py b/tests/test_views.py index 33a0005..0025ef8 100644 --- a/tests/test_views.py +++ b/tests/test_views.py @@ -2,11 +2,22 @@ import json import unittest + +try: + from unittest.mock import Mock, patch +except ImportError: + from mock import Mock, patch + import httpretty from pyramid import testing -from pyramid_urireferencer import IReferencer, Referencer, _add_referencer, get_referencer -from pyramid_urireferencer.views import ReferencesPluginView +from pyramid.httpexceptions import HTTPBadRequest + +from pyramid_urireferencer import IReferencer +from pyramid_urireferencer import Referencer +from pyramid_urireferencer import _add_referencer +from pyramid_urireferencer import get_referencer from pyramid_urireferencer.models import RegistryResponse +from pyramid_urireferencer.views import ReferencesPluginView try: from urllib import urlencode @@ -64,6 +75,18 @@ def test_is_referenced(self): httpretty.disable() # disable afterwards, so that you will have no problems in code that uses that socket module httpretty.reset() + def test_no_uri(self): + request = Mock(params={'uri': ''}) + view = ReferencesPluginView(request) + with self.assertRaises(HTTPBadRequest): + view.get_references() + + def test_uri_none(self): + request = Mock(params={'uri': None}) + view = ReferencesPluginView(request) + with self.assertRaises(HTTPBadRequest): + view.get_references() + class TestReferencer(Referencer): def references(self, uri, request): @@ -71,5 +94,3 @@ def references(self, uri, request): def get_uri(self, request): return 'https://id.erfgoed.net/resources/1' - - From a8d8a38dea966d848e7159edb5a8b8f325a4b765 Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 21 Jan 2021 16:17:52 +0100 Subject: [PATCH 2/2] #81 review fix --- tests/test_views.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/test_views.py b/tests/test_views.py index 0025ef8..b733809 100644 --- a/tests/test_views.py +++ b/tests/test_views.py @@ -3,11 +3,6 @@ import json import unittest -try: - from unittest.mock import Mock, patch -except ImportError: - from mock import Mock, patch - import httpretty from pyramid import testing from pyramid.httpexceptions import HTTPBadRequest @@ -24,6 +19,11 @@ except ImportError: from urllib.parse import urlencode +try: + from unittest.mock import Mock, patch +except ImportError: + from mock import Mock, patch + class ViewTests(unittest.TestCase): def setUp(self):