aboutsummaryrefslogtreecommitdiffstats
path: root/pygithub3/tests
diff options
context:
space:
mode:
Diffstat (limited to 'pygithub3/tests')
-rw-r--r--pygithub3/tests/requests/test_core.py17
-rw-r--r--pygithub3/tests/utils/base.py13
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')