From 18a8ed35b0ff6eae1bacbe0220f38a102fe4e321 Mon Sep 17 00:00:00 2001 From: David Medina Date: Thu, 9 Feb 2012 23:01:12 +0100 Subject: Utils to tests --- pygithub3/tests/utils/__init__.py | 0 pygithub3/tests/utils/base.py | 21 +++++++++++++++++++++ pygithub3/tests/utils/core.py | 30 ++++++++++++++++++++++++++++++ pygithub3/tests/utils/requests.py | 35 +++++++++++++++++++++++++++++++++++ 4 files changed, 86 insertions(+) create mode 100644 pygithub3/tests/utils/__init__.py create mode 100644 pygithub3/tests/utils/base.py create mode 100644 pygithub3/tests/utils/core.py create mode 100644 pygithub3/tests/utils/requests.py (limited to 'pygithub3/tests/utils') diff --git a/pygithub3/tests/utils/__init__.py b/pygithub3/tests/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/pygithub3/tests/utils/base.py b/pygithub3/tests/utils/base.py new file mode 100644 index 0000000..8b82b67 --- /dev/null +++ b/pygithub3/tests/utils/base.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from mock import Mock + +from pygithub3.resources.base import Resource +from pygithub3.requests import Request + + +class DummyResource(Resource): + pass + + +def loads_mock(content): + return content +DummyResource.loads = Mock(side_effect=loads_mock) + + +class DummyRequest(Request): + uri = 'dummyrequest' + resource = DummyResource diff --git a/pygithub3/tests/utils/core.py b/pygithub3/tests/utils/core.py new file mode 100644 index 0000000..8d18732 --- /dev/null +++ b/pygithub3/tests/utils/core.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from .base import Mock, DummyRequest + +request = DummyRequest() +# Working without json but name it json-related to not confuse +json_content = [dict(name='dummy')] + + +def mock_paginate_github_in_GET(request, page): + def header(page): + return {'link': '; rel="last"' % page} + + def content(page): + if page >= 3: + return json_content + return json_content * 2 + + response = Mock() + response.headers = header(3) + response.content = content(page) + return response + + +def mock_no_paginate_github_in_GET(request, page): + response = Mock() + response.headers = {} + response.content = [json_content * 3] + return response diff --git a/pygithub3/tests/utils/requests.py b/pygithub3/tests/utils/requests.py new file mode 100644 index 0000000..4d170c1 --- /dev/null +++ b/pygithub3/tests/utils/requests.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from .base import Request, DummyResource, DummyRequest +from pygithub3.exceptions import ValidationError + + +class RequestWithArgs(Request): + + uri = 'URI/{arg1}/{arg2}' + + +class RequestCleanedUri(Request): + + uri = 'URI/{arg1}/{arg2}' + + def clean_uri(self): + if not self.arg1: + return 'URI' + + +class RequestBodyWithSchema(Request): + uri = 'URI' + body_schema = ('arg1', 'arg2') + + +class RequestCleanedBody(Request): + + uri = 'URI' + + def clean_body(self): + raise ValidationError('test') + +def mock_json_dumps(content): + return content -- cgit v1.2.3-59-g8ed1b