From 1836ee60f0a3772188c9341efe737aa03ca6f2ff Mon Sep 17 00:00:00 2001 From: David Medina Date: Sat, 12 Nov 2011 19:06:55 +0100 Subject: PEP8 and renaming --- github3/core.py | 7 ++- github3/tests/api_test.py | 115 +++++++++++++++++++++++++++++++++++++ github3/tests/base_test.py | 29 ---------- github3/tests/converters_test.py | 91 +++++++++++++++++++++++++++++ github3/tests/get_handlers_test.py | 28 +++++++++ github3/tests/test_converters.py | 91 ----------------------------- github3/tests/test_core.py | 115 ------------------------------------- 7 files changed, 240 insertions(+), 236 deletions(-) create mode 100644 github3/tests/api_test.py delete mode 100644 github3/tests/base_test.py create mode 100644 github3/tests/converters_test.py create mode 100644 github3/tests/get_handlers_test.py delete mode 100644 github3/tests/test_converters.py delete mode 100644 github3/tests/test_core.py (limited to 'github3') diff --git a/github3/core.py b/github3/core.py index 42f8a07..b838bf1 100644 --- a/github3/core.py +++ b/github3/core.py @@ -3,6 +3,7 @@ # # author: David Medina + class Paginate: """ Paginate resource iterator @@ -33,7 +34,10 @@ class Paginate: return self def initial(self): - """ First request. Force requester to paginate returning link header """ + """ + First request + Force requester to paginate returning link header + """ link, content = self.requester(self.resource, paginate=True, page=1, **self.kwargs) self.last = self._last_page(link) if link else 1 @@ -53,6 +57,7 @@ class Paginate: self.page += 1 return content + class Converter(object): """ Abstract converter class """ diff --git a/github3/tests/api_test.py b/github3/tests/api_test.py new file mode 100644 index 0000000..258a737 --- /dev/null +++ b/github3/tests/api_test.py @@ -0,0 +1,115 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from mock import Mock, patch +from unittest import TestCase +from github3 import api +from github3.exceptions import * +import json +import requests + + +@patch.object(requests.sessions.Session, 'request') +class TestGithubCore(TestCase): + + def setUp(self): + self.gh = api.GithubCore() + self.assertEquals(self.gh.base_url, 'https://api.github.com/') + self.assertEquals(self.gh._parser, json) + self.base_url = self.gh.base_url + self.parser = self.gh._parser + + def test_parse_args(self, request_method): + args = { + 'data': {'some': 'data'}, + 'params': {'arg0': 'some'}, + 'headers': 'out', + 'auth': 'out', + 'arg1': 'some', + 'arg2': 'some', + 'arg3': {'some': 'data', 'are': {'nested': 'true'}}, + } + self.gh._parse_args(args) + self.assertEquals(args, { + 'data': {'some': 'data'}, + 'params': {'arg0': 'some', 'arg1': 'some', 'arg2': 'some', + 'arg3': {'some': 'data', 'are': {'nested': 'true'}}}, + 'headers': 'out', + 'auth': 'out', + }) + + def test_raise_errors(self, request_method): + real_request = (self.gh._request, 'GET', 'test') + request_method.return_value.status_code = 404 + self.assertRaises(NotFound, *real_request) + + request_method.return_value.status_code = 400 + self.assertRaises(BadRequest, *real_request) + + request_method.return_value.status_code = 422 + self.assertRaises(UnprocessableEntity, *real_request) + + request_method.return_value.status_code = 401 + self.assertRaises(Unauthorized, *real_request) + + def test_get(self, request_method): + response = request_method.return_value + response.content = self.parser.dumps({'test': 'test'}) + content = self.gh.get('core') + request_method.assert_called_with('GET', self.base_url + 'core') + self.assertEquals(content, {'test': 'test'}) + + response = request_method.return_value + response.headers = {'link': 'url_with_links'} + response.content = self.parser.dumps({'test': 'test'}) + header, content = self.gh.get('core', paginate=True) + request_method.assert_called_with('GET', self.base_url + 'core') + self.assertEquals(header, 'url_with_links') + self.assertEquals(content, {'test': 'test'}) + + def test_head(self, request_method): + pass # It has no sense using mocks + + def test_post_and_patch(self, request_method): + data = {'login': 'test', 'bio': 'test'} + response = request_method.return_value + response.status_code = 201 + response.content = self.parser.dumps({'post': 'done'}) + + content = self.gh.post('core', data=data) + request_method.assert_called_with( + 'POST', self.base_url + 'core', + data=self.parser.dumps(data)) + self.assertEquals(content, {'post': 'done'}) + + content = self.gh.post('core') + request_method.assert_called_with( + 'POST', self.base_url + 'core', + data=self.parser.dumps(None)) + self.assertEquals(content, {'post': 'done'}) + + response.status_code = 200 + content = self.gh.patch('core', data=data) + request_method.assert_called_with( + 'PATCH', self.base_url + 'core', + data=self.parser.dumps(data)) + self.assertEquals(content, {'post': 'done'}) + + content = self.gh.patch('core') + request_method.assert_called_with( + 'PATCH', self.base_url + 'core', + data=self.parser.dumps(None)) + self.assertEquals(content, {'post': 'done'}) + + def test_delete(self, request_method): + data = {'test': 'test'} + response = request_method.return_value + response.status_code = 204 + response.content = self.parser.dumps({'delete': 'done'}) + delete = self.gh.delete('core', data=data) + request_method.assert_called_with( + 'DELETE', self.base_url + 'core', + data=self.parser.dumps(data)) + delete = self.gh.delete('core') + request_method.assert_called_with( + 'DELETE', self.base_url + 'core') diff --git a/github3/tests/base_test.py b/github3/tests/base_test.py deleted file mode 100644 index 59d474a..0000000 --- a/github3/tests/base_test.py +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env python -# -*- encoding: utf-8 -*- - -from unittest import TestCase -import github3 -from github3 import api -from github3 import handlers - - -class TestGetHandlers(TestCase): - - def setUp(self): - self.anom_gh = api.Github() - self.auth_gh = api.Github('test', 'password') - - def test_get_user(self): - anom_user = self.anom_gh.users - auth_user = self.auth_gh.users - - self.assertEquals(isinstance(anom_user, handlers.users.User), True) - self.assertEquals(isinstance(auth_user, handlers.users.AuthUser), True) - - def test_get_gists(self): - anom_gists = self.anom_gh.gists - auth_gists = self.auth_gh.gists - - self.assertEquals(isinstance(anom_gists, handlers.gists.Gist), True) - self.assertEquals( - isinstance(auth_gists, handlers.gists.AuthGist), True) diff --git a/github3/tests/converters_test.py b/github3/tests/converters_test.py new file mode 100644 index 0000000..ca1c715 --- /dev/null +++ b/github3/tests/converters_test.py @@ -0,0 +1,91 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from github3.converters import * +from github3.models.base import BaseResource +from unittest import TestCase +from datetime import datetime + +API_STUB = { + 'test_str': 'string', 'test_int': 1, + 'test_date': '2008-01-14T04:33:35Z', 'test_bool': True, + 'map': {'test_str': 'string'}, + 'dict_map': { + 'map1': { + 'test_str': 'string', + 'test_int': 1 + }, + 'map2': { + 'test_str': 'string', + 'test_int': 2 + }, + }, + 'list_map': [ + {'test_str': 'string', 'test_int': 1}, + {'test_str': 'string', 'test_int': 2}, + ] +} + + +class Model(BaseResource): + + @classmethod + def idl(self): + return { + 'strs': ['test_str'], + 'ints': ['test_int'], + 'dates': ['test_date'], + 'bools': ['test_bool'], + 'maps': {'map': Model}, + 'collection_maps': { + 'dict_map': Model, + 'list_map': Model, + }, + } + + +class TestModelizer(TestCase): + + def setUp(self): + model = Model + self.modelizer = Modelizer() + self.modelizer.inject(model) + + def test_loads(self): + parsed_model = self.modelizer.loads(API_STUB) + self.assertEquals(parsed_model.test_str, 'string') + self.assertEquals(parsed_model.test_int, 1) + self.assertEquals( + parsed_model.test_date, + datetime(2008, 1, 14, 4, 33, 35)) + self.assertTrue(parsed_model.test_bool) + self.assertTrue(isinstance(parsed_model.map, Model)) + self.assertEquals(parsed_model.map.test_str, 'string') + self.assertTrue(isinstance(parsed_model.dict_map, dict)) + map1 = parsed_model.dict_map['map1'] + map2 = parsed_model.dict_map['map2'] + self.assertTrue(isinstance(map1, Model)) + self.assertTrue(isinstance(map2, Model)) + self.assertEquals(map1.test_str, 'string') + self.assertEquals(map1.test_int, 1) + self.assertEquals(map2.test_str, 'string') + self.assertEquals(map2.test_int, 2) + + list_map = parsed_model.list_map + self.assertTrue(isinstance(list_map, list)) + self.assertEquals(list_map[0].test_str, 'string') + self.assertEquals(list_map[0].test_int, 1) + self.assertEquals(list_map[1].test_str, 'string') + self.assertEquals(list_map[1].test_int, 2) + + +class TestRawlizer(TestCase): + + def setUp(self): + model = Model + self.rawlizer = Rawlizer() + + # Trivial, I know it + def test_loads(self): + raw = self.rawlizer.loads(API_STUB) + self.assertEquals(raw, API_STUB) diff --git a/github3/tests/get_handlers_test.py b/github3/tests/get_handlers_test.py new file mode 100644 index 0000000..0ae1302 --- /dev/null +++ b/github3/tests/get_handlers_test.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from unittest import TestCase +from github3 import api +from github3 import handlers + + +class TestGetHandlers(TestCase): + + def setUp(self): + self.anom_gh = api.Github() + self.auth_gh = api.Github('test', 'password') + + def test_get_user(self): + anom_user = self.anom_gh.users + auth_user = self.auth_gh.users + + self.assertEquals(isinstance(anom_user, handlers.users.User), True) + self.assertEquals(isinstance(auth_user, handlers.users.AuthUser), True) + + def test_get_gists(self): + anom_gists = self.anom_gh.gists + auth_gists = self.auth_gh.gists + + self.assertEquals(isinstance(anom_gists, handlers.gists.Gist), True) + self.assertEquals( + isinstance(auth_gists, handlers.gists.AuthGist), True) diff --git a/github3/tests/test_converters.py b/github3/tests/test_converters.py deleted file mode 100644 index ca1c715..0000000 --- a/github3/tests/test_converters.py +++ /dev/null @@ -1,91 +0,0 @@ -#!/usr/bin/env python -# -*- encoding: utf-8 -*- - -from github3.converters import * -from github3.models.base import BaseResource -from unittest import TestCase -from datetime import datetime - -API_STUB = { - 'test_str': 'string', 'test_int': 1, - 'test_date': '2008-01-14T04:33:35Z', 'test_bool': True, - 'map': {'test_str': 'string'}, - 'dict_map': { - 'map1': { - 'test_str': 'string', - 'test_int': 1 - }, - 'map2': { - 'test_str': 'string', - 'test_int': 2 - }, - }, - 'list_map': [ - {'test_str': 'string', 'test_int': 1}, - {'test_str': 'string', 'test_int': 2}, - ] -} - - -class Model(BaseResource): - - @classmethod - def idl(self): - return { - 'strs': ['test_str'], - 'ints': ['test_int'], - 'dates': ['test_date'], - 'bools': ['test_bool'], - 'maps': {'map': Model}, - 'collection_maps': { - 'dict_map': Model, - 'list_map': Model, - }, - } - - -class TestModelizer(TestCase): - - def setUp(self): - model = Model - self.modelizer = Modelizer() - self.modelizer.inject(model) - - def test_loads(self): - parsed_model = self.modelizer.loads(API_STUB) - self.assertEquals(parsed_model.test_str, 'string') - self.assertEquals(parsed_model.test_int, 1) - self.assertEquals( - parsed_model.test_date, - datetime(2008, 1, 14, 4, 33, 35)) - self.assertTrue(parsed_model.test_bool) - self.assertTrue(isinstance(parsed_model.map, Model)) - self.assertEquals(parsed_model.map.test_str, 'string') - self.assertTrue(isinstance(parsed_model.dict_map, dict)) - map1 = parsed_model.dict_map['map1'] - map2 = parsed_model.dict_map['map2'] - self.assertTrue(isinstance(map1, Model)) - self.assertTrue(isinstance(map2, Model)) - self.assertEquals(map1.test_str, 'string') - self.assertEquals(map1.test_int, 1) - self.assertEquals(map2.test_str, 'string') - self.assertEquals(map2.test_int, 2) - - list_map = parsed_model.list_map - self.assertTrue(isinstance(list_map, list)) - self.assertEquals(list_map[0].test_str, 'string') - self.assertEquals(list_map[0].test_int, 1) - self.assertEquals(list_map[1].test_str, 'string') - self.assertEquals(list_map[1].test_int, 2) - - -class TestRawlizer(TestCase): - - def setUp(self): - model = Model - self.rawlizer = Rawlizer() - - # Trivial, I know it - def test_loads(self): - raw = self.rawlizer.loads(API_STUB) - self.assertEquals(raw, API_STUB) diff --git a/github3/tests/test_core.py b/github3/tests/test_core.py deleted file mode 100644 index 258a737..0000000 --- a/github3/tests/test_core.py +++ /dev/null @@ -1,115 +0,0 @@ -#!/usr/bin/env python -# -*- encoding: utf-8 -*- - -from mock import Mock, patch -from unittest import TestCase -from github3 import api -from github3.exceptions import * -import json -import requests - - -@patch.object(requests.sessions.Session, 'request') -class TestGithubCore(TestCase): - - def setUp(self): - self.gh = api.GithubCore() - self.assertEquals(self.gh.base_url, 'https://api.github.com/') - self.assertEquals(self.gh._parser, json) - self.base_url = self.gh.base_url - self.parser = self.gh._parser - - def test_parse_args(self, request_method): - args = { - 'data': {'some': 'data'}, - 'params': {'arg0': 'some'}, - 'headers': 'out', - 'auth': 'out', - 'arg1': 'some', - 'arg2': 'some', - 'arg3': {'some': 'data', 'are': {'nested': 'true'}}, - } - self.gh._parse_args(args) - self.assertEquals(args, { - 'data': {'some': 'data'}, - 'params': {'arg0': 'some', 'arg1': 'some', 'arg2': 'some', - 'arg3': {'some': 'data', 'are': {'nested': 'true'}}}, - 'headers': 'out', - 'auth': 'out', - }) - - def test_raise_errors(self, request_method): - real_request = (self.gh._request, 'GET', 'test') - request_method.return_value.status_code = 404 - self.assertRaises(NotFound, *real_request) - - request_method.return_value.status_code = 400 - self.assertRaises(BadRequest, *real_request) - - request_method.return_value.status_code = 422 - self.assertRaises(UnprocessableEntity, *real_request) - - request_method.return_value.status_code = 401 - self.assertRaises(Unauthorized, *real_request) - - def test_get(self, request_method): - response = request_method.return_value - response.content = self.parser.dumps({'test': 'test'}) - content = self.gh.get('core') - request_method.assert_called_with('GET', self.base_url + 'core') - self.assertEquals(content, {'test': 'test'}) - - response = request_method.return_value - response.headers = {'link': 'url_with_links'} - response.content = self.parser.dumps({'test': 'test'}) - header, content = self.gh.get('core', paginate=True) - request_method.assert_called_with('GET', self.base_url + 'core') - self.assertEquals(header, 'url_with_links') - self.assertEquals(content, {'test': 'test'}) - - def test_head(self, request_method): - pass # It has no sense using mocks - - def test_post_and_patch(self, request_method): - data = {'login': 'test', 'bio': 'test'} - response = request_method.return_value - response.status_code = 201 - response.content = self.parser.dumps({'post': 'done'}) - - content = self.gh.post('core', data=data) - request_method.assert_called_with( - 'POST', self.base_url + 'core', - data=self.parser.dumps(data)) - self.assertEquals(content, {'post': 'done'}) - - content = self.gh.post('core') - request_method.assert_called_with( - 'POST', self.base_url + 'core', - data=self.parser.dumps(None)) - self.assertEquals(content, {'post': 'done'}) - - response.status_code = 200 - content = self.gh.patch('core', data=data) - request_method.assert_called_with( - 'PATCH', self.base_url + 'core', - data=self.parser.dumps(data)) - self.assertEquals(content, {'post': 'done'}) - - content = self.gh.patch('core') - request_method.assert_called_with( - 'PATCH', self.base_url + 'core', - data=self.parser.dumps(None)) - self.assertEquals(content, {'post': 'done'}) - - def test_delete(self, request_method): - data = {'test': 'test'} - response = request_method.return_value - response.status_code = 204 - response.content = self.parser.dumps({'delete': 'done'}) - delete = self.gh.delete('core', data=data) - request_method.assert_called_with( - 'DELETE', self.base_url + 'core', - data=self.parser.dumps(data)) - delete = self.gh.delete('core') - request_method.assert_called_with( - 'DELETE', self.base_url + 'core') -- cgit v1.2.3-59-g8ed1b