diff options
Diffstat (limited to 'pygithub3/tests')
-rw-r--r-- | pygithub3/tests/requests/test_core.py | 17 | ||||
-rw-r--r-- | pygithub3/tests/utils/base.py | 13 |
2 files changed, 27 insertions, 3 deletions
diff --git a/pygithub3/tests/requests/test_core.py b/pygithub3/tests/requests/test_core.py index cd162b3..9fcec10 100644 --- a/pygithub3/tests/requests/test_core.py +++ b/pygithub3/tests/requests/test_core.py @@ -2,12 +2,14 @@ # -*- encoding: utf-8 -*- from mock import Mock +from nose.tools import raises from pygithub3.tests.utils.core import TestCase from pygithub3.requests.base import Factory, Body, json, Request from pygithub3.exceptions import (UriInvalid, DoesNotExists, ValidationError, InvalidBodySchema) -from pygithub3.tests.utils.base import mock_json, DummyRequest +from pygithub3.tests.utils.base import (mock_json, DummyRequest, + DummyRequestValidation) from pygithub3.tests.utils.requests import ( RequestWithArgs, RequestCleanedUri, RequestBodyInvalidSchema, RequestCleanedBody) @@ -74,7 +76,7 @@ class TestRequestBodyWithSchema(TestCase): def setUp(self): valid_body = dict(schema=('arg1', 'arg2'), required=('arg1', )) - self.b = Body({}, **valid_body) + self.b = Body({}, valid_body) def test_with_body_empty_and_schema_permissive(self): self.b.schema = ('arg1', 'arg2', '...') @@ -100,3 +102,14 @@ class TestRequestBodyWithSchema(TestCase): def test_only_valid_keys(self): self.b.content = dict(arg1='arg1', arg2='arg2', fake='test') self.assertEqual(self.b.dumps(), dict(arg1='arg1', arg2='arg2')) + + +class TestBodyValidation(TestCase): + @raises(ValidationError) + def test_with_error(self): + req = DummyRequestValidation( + body={'foo': 'bar', 'error': 'yes'}, + ) + req.body_schema = {'schema': ('foo',), + 'required': ('foo',)} + req.get_body() diff --git a/pygithub3/tests/utils/base.py b/pygithub3/tests/utils/base.py index 49ea2b4..fb519e9 100644 --- a/pygithub3/tests/utils/base.py +++ b/pygithub3/tests/utils/base.py @@ -4,7 +4,7 @@ from mock import Mock from pygithub3.resources.base import Resource -from pygithub3.requests.base import Request +from pygithub3.requests.base import Request, ValidationError def mock_json(content): @@ -37,3 +37,14 @@ DummyResource.loads = Mock(side_effect=loads_mock) class DummyRequest(Request): uri = 'dummyrequest' resource = DummyResource + + +class DummyRequestValidation(DummyRequest): + body_schema = { + 'schema': ('foo', 'error'), + 'required': ('foo',) + } + + def validate_body(self, body): + if body.get('error') == 'yes': + raise ValidationError('yes') |