aboutsummaryrefslogtreecommitdiffstats
path: root/pygithub3/tests
diff options
context:
space:
mode:
authorDavid Medina <davidmedina9@gmail.com>2012-02-09 23:02:28 +0100
committerDavid Medina <davidmedina9@gmail.com>2012-02-09 23:09:51 +0100
commit2cbe9b6cc26b565de45a4f3e375c314b2512ff07 (patch)
treee2610e42fcbe4c0415b7cb0638346d0ff54a57f5 /pygithub3/tests
parentUtils to tests (diff)
downloadpython-github3-2cbe9b6cc26b565de45a4f3e375c314b2512ff07.tar.xz
python-github3-2cbe9b6cc26b565de45a4f3e375c314b2512ff07.zip
Requests tests
requests.core
Diffstat (limited to 'pygithub3/tests')
-rw-r--r--pygithub3/tests/requests/__init__.py0
-rw-r--r--pygithub3/tests/requests/test_core.py90
2 files changed, 90 insertions, 0 deletions
diff --git a/pygithub3/tests/requests/__init__.py b/pygithub3/tests/requests/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/pygithub3/tests/requests/__init__.py
diff --git a/pygithub3/tests/requests/test_core.py b/pygithub3/tests/requests/test_core.py
new file mode 100644
index 0000000..5376c01
--- /dev/null
+++ b/pygithub3/tests/requests/test_core.py
@@ -0,0 +1,90 @@
+#!/usr/bin/env python
+# -*- encoding: utf-8 -*-
+
+from unittest import TestCase
+from mock import Mock
+
+from pygithub3.requests import Factory, Body, json, Request
+from pygithub3.exceptions import UriInvalid, DoesNotExists, ValidationError
+from pygithub3.tests.utils.requests import (
+ RequestWithArgs, RequestCleanedUri, RequestBodyWithSchema, mock_json_dumps,
+ DummyRequest, RequestCleanedBody)
+
+json.dumps = Mock(side_effect=mock_json_dumps)
+
+
+class TestFactory(TestCase):
+
+ def setUp(self):
+ self.f = Factory()
+
+ def test_BUILDER_with_invalid_action(self):
+ self.assertRaises(UriInvalid, self.f, 'invalid')
+ self.assertRaises(UriInvalid, self.f, 'invalid.')
+ self.assertRaises(UriInvalid, self.f, '.invalid')
+
+ def test_BUILDER_with_fake_action(self):
+ self.assertRaises(DoesNotExists, self.f, 'users.fake')
+ self.assertRaises(DoesNotExists, self.f, 'fake.users')
+
+ def test_BUILDER_builds_users(self):
+ """ Users.get as real test because it wouldn't be useful mock
+ the import-jit process """
+ request = self.f('users.get')
+ self.assertIsInstance(request, Request)
+
+class TestRequestUri(TestCase):
+
+ def test_SIMPLE_with_correct_args(self):
+ request = RequestWithArgs(arg1='arg1', arg2='arg2')
+ self.assertEqual(str(request), 'URI/arg1/arg2')
+
+ def test_SIMPLE_without_needed_args(self):
+ request = RequestWithArgs()
+ self.assertRaises(ValidationError, str, request)
+
+ def test_with_cleaned_uri(self):
+ """ Its real uri has args but I override `clean_uri` method, so
+ if `nomatters` arg exists, change uri to `URI` """
+ request = RequestCleanedUri(notmatters='test')
+ self.assertEqual(str(request), 'URI')
+
+
+class TestRequestBody(TestCase):
+
+ def test_with_schema_with_valid(self):
+ request = RequestBodyWithSchema(body=dict(
+ arg1='only', fake='t', fake1='t'))
+ self.assertEqual(request.get_body(), dict(arg1='only'))
+
+ def test_with_schema_with_invalid(self):
+ request = RequestBodyWithSchema(body='invalid_data')
+ self.assertRaises(ValidationError, request.get_body)
+
+ def test_with_schema_without_body(self):
+ request = RequestBodyWithSchema()
+ self.assertIsNone(request.get_body())
+
+ def test_without_schema(self):
+ request = DummyRequest(body=dict(arg1='test'))
+ self.assertEqual(request.get_body(), dict(arg1='test'))
+
+ def test_without_schema_without_body(self):
+ request = DummyRequest()
+ self.assertIsNone(request.get_body())
+
+ def test_with_clean_body(self):
+ self.assertRaises(ValidationError, RequestCleanedBody)
+
+
+class TestBodyParsers(TestCase):
+
+ def setUp(self):
+ self.b = Body(
+ dict(arg1='arg1', arg2='arg2', arg3='arg3', arg4='arg4'),
+ ('arg1', 'arg3', 'arg4'))
+
+ def test_RETURN_only_valid_keys(self):
+ get_body_returns = self.b.parse()
+ self.assertEqual(get_body_returns, dict(arg1='arg1', arg3='arg3',
+ arg4='arg4'))