159 lines
7.7 KiB
Diff
159 lines
7.7 KiB
Diff
Description: Use system version of Python requests
|
|
Do not use the bundled requests version which would make security support
|
|
harder.
|
|
Author: Benjamin Drung <benjamin.drung@profitbricks.com>
|
|
Bug: https://github.com/maxtepkeev/python-redmine/issues/108#issuecomment-149040488
|
|
|
|
--- a/redmine/__init__.py
|
|
+++ b/redmine/__init__.py
|
|
@@ -2,8 +2,8 @@
|
|
import json
|
|
|
|
from distutils.version import LooseVersion
|
|
+import requests
|
|
|
|
-from .packages import requests
|
|
from .version import __version__
|
|
from .managers import ResourceManager
|
|
from .utilities import is_string, to_string
|
|
--- a/tests/test_managers.py
|
|
+++ b/tests/test_managers.py
|
|
@@ -48,7 +48,7 @@
|
|
self.assertEqual(resourceset[1].identifier, 'bar')
|
|
self.assertEqual(resourceset[1].id, 2)
|
|
|
|
- @mock.patch('redmine.packages.requests.get')
|
|
+ @mock.patch('redmine.requests.get')
|
|
def test_get_single_resource(self, mock_get):
|
|
mock_get.return_value = response = mock.Mock(status_code=200)
|
|
response.json.return_value = {'project': {'name': 'Foo', 'identifier': 'foo', 'id': 1}}
|
|
@@ -72,7 +72,7 @@
|
|
self.assertEqual(time_entries.manager.params['from'], '2014-03-09T00:00:00Z')
|
|
self.assertEqual(time_entries.manager.params['to'], '2014-03-10T00:00:00Z')
|
|
|
|
- @mock.patch('redmine.packages.requests.post')
|
|
+ @mock.patch('redmine.requests.post')
|
|
def test_create_resource(self, mock_post):
|
|
mock_post.return_value = response = mock.Mock(status_code=201)
|
|
response.json.return_value = {'user': {'firstname': 'John', 'lastname': 'Smith', 'id': 1}}
|
|
@@ -81,7 +81,7 @@
|
|
self.assertEqual(user.lastname, 'Smith')
|
|
|
|
@mock.patch('redmine.open', mock.mock_open(), create=True)
|
|
- @mock.patch('redmine.packages.requests.post')
|
|
+ @mock.patch('redmine.requests.post')
|
|
def test_create_resource_with_uploads(self, mock_post):
|
|
mock_post.return_value = response = mock.Mock(status_code=201)
|
|
response.json.return_value = {
|
|
@@ -98,7 +98,7 @@
|
|
defaults.update(dict((relation, None) for relation in project._relations))
|
|
self.assertEqual(project._attributes, defaults)
|
|
|
|
- @mock.patch('redmine.packages.requests.put')
|
|
+ @mock.patch('redmine.requests.put')
|
|
def test_update_resource(self, mock_put):
|
|
mock_put.return_value = mock.Mock(status_code=200, content='')
|
|
manager = self.redmine.wiki_page
|
|
@@ -107,8 +107,8 @@
|
|
del manager.params['project_id']
|
|
|
|
@mock.patch('redmine.open', mock.mock_open(), create=True)
|
|
- @mock.patch('redmine.packages.requests.put')
|
|
- @mock.patch('redmine.packages.requests.post')
|
|
+ @mock.patch('redmine.requests.put')
|
|
+ @mock.patch('redmine.requests.post')
|
|
def test_update_resource_with_uploads(self, mock_post, mock_put):
|
|
mock_put.return_value = mock.Mock(status_code=200, content='')
|
|
mock_post.return_value = response = mock.Mock(status_code=201)
|
|
@@ -118,7 +118,7 @@
|
|
self.assertEqual(manager.update(1, subject='Bar', uploads=[{'path': 'foo'}]), True)
|
|
del manager.params['subject']
|
|
|
|
- @mock.patch('redmine.packages.requests.delete')
|
|
+ @mock.patch('redmine.requests.delete')
|
|
def test_delete_resource(self, mock_delete):
|
|
mock_delete.return_value = mock.Mock(status_code=200, content='')
|
|
self.assertEqual(self.redmine.group.delete(1), True)
|
|
@@ -178,20 +178,20 @@
|
|
self.assertEqual(project.url, unpickled_project.url)
|
|
self.assertEqual(project.params['foo'], unpickled_project.params['foo'])
|
|
|
|
- @mock.patch('redmine.packages.requests.put')
|
|
- @mock.patch('redmine.packages.requests.post')
|
|
+ @mock.patch('redmine.requests.put')
|
|
+ @mock.patch('redmine.requests.post')
|
|
def test_create_validation_exception_via_put(self, mock_post, mock_put):
|
|
mock_post.return_value = mock.Mock(status_code=404)
|
|
mock_put.return_value = mock.Mock(status_code=200)
|
|
self.assertRaises(ValidationError, lambda: self.redmine.user.create(firstname='John', lastname='Smith'))
|
|
|
|
- @mock.patch('redmine.packages.requests.get')
|
|
+ @mock.patch('redmine.requests.get')
|
|
def test_reraises_not_found_exception(self, mock_get):
|
|
from redmine.exceptions import ResourceNotFoundError
|
|
mock_get.return_value = mock.Mock(status_code=404)
|
|
self.assertRaises(ResourceNotFoundError, lambda: self.redmine.project.get('non-existent-project'))
|
|
|
|
- @mock.patch('redmine.packages.requests.get')
|
|
+ @mock.patch('redmine.requests.get')
|
|
def test_resource_requirements_exception(self, mock_get):
|
|
from redmine.exceptions import ResourceRequirementsError
|
|
FooResource.requirements = ('foo plugin', ('bar plugin', '1.2.3'),)
|
|
--- a/tests/test_redmine.py
|
|
+++ b/tests/test_redmine.py
|
|
@@ -51,9 +51,9 @@
|
|
self.url = URL
|
|
self.redmine = Redmine(self.url)
|
|
self.response = mock.Mock()
|
|
- patcher_get = mock.patch('redmine.packages.requests.get', return_value=self.response)
|
|
- patcher_post = mock.patch('redmine.packages.requests.post', return_value=self.response)
|
|
- patcher_put = mock.patch('redmine.packages.requests.put', return_value=self.response)
|
|
+ patcher_get = mock.patch('redmine.requests.get', return_value=self.response)
|
|
+ patcher_post = mock.patch('redmine.requests.post', return_value=self.response)
|
|
+ patcher_put = mock.patch('redmine.requests.put', return_value=self.response)
|
|
patcher_get.start()
|
|
patcher_post.start()
|
|
patcher_put.start()
|
|
--- a/tests/test_resources.py
|
|
+++ b/tests/test_resources.py
|
|
@@ -104,10 +104,10 @@
|
|
self.url = URL
|
|
self.redmine = Redmine(self.url)
|
|
self.response = mock.Mock(status_code=200)
|
|
- patcher_get = mock.patch('redmine.packages.requests.get', return_value=self.response)
|
|
- patcher_post = mock.patch('redmine.packages.requests.post', return_value=self.response)
|
|
- patcher_put = mock.patch('redmine.packages.requests.put', return_value=self.response)
|
|
- patcher_delete = mock.patch('redmine.packages.requests.delete', return_value=self.response)
|
|
+ patcher_get = mock.patch('redmine.requests.get', return_value=self.response)
|
|
+ patcher_post = mock.patch('redmine.requests.post', return_value=self.response)
|
|
+ patcher_put = mock.patch('redmine.requests.put', return_value=self.response)
|
|
+ patcher_delete = mock.patch('redmine.requests.delete', return_value=self.response)
|
|
patcher_get.start()
|
|
patcher_post.start()
|
|
patcher_put.start()
|
|
--- a/tests/test_resultsets.py
|
|
+++ b/tests/test_resultsets.py
|
|
@@ -14,9 +14,9 @@
|
|
self.url = URL
|
|
self.redmine = Redmine(self.url)
|
|
self.response = mock.Mock(status_code=200, json=mock.Mock(return_value=response))
|
|
- patcher_get = mock.patch('redmine.packages.requests.get', return_value=self.response)
|
|
- patcher_put = mock.patch('redmine.packages.requests.put', return_value=self.response)
|
|
- patcher_delete = mock.patch('redmine.packages.requests.delete', return_value=self.response)
|
|
+ patcher_get = mock.patch('redmine.requests.get', return_value=self.response)
|
|
+ patcher_put = mock.patch('redmine.requests.put', return_value=self.response)
|
|
+ patcher_delete = mock.patch('redmine.requests.delete', return_value=self.response)
|
|
patcher_get.start()
|
|
patcher_put.start()
|
|
patcher_delete.start()
|
|
--- a/setup.py
|
|
+++ b/setup.py
|
|
@@ -63,6 +63,7 @@
|
|
description='Library for communicating with a Redmine project management application',
|
|
long_description=open('README.rst').read() + '\n\n' + open('CHANGELOG.rst').read(),
|
|
keywords='redmine,redminecrm,easyredmine',
|
|
+ install_requires=['requests >= 0.12.1'],
|
|
tests_require=tests_require,
|
|
cmdclass={'test': NoseTests},
|
|
zip_safe=False,
|