Skip to content

Commit 9aecee8

Browse files
committed
more url variations for issue #327
1 parent 79ef42b commit 9aecee8

2 files changed

Lines changed: 21 additions & 0 deletions

File tree

redminelib/managers/standard.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,18 @@ def _check_custom_url(path):
6464
def _construct_get_url(self, path):
6565
return super()._construct_get_url(self._check_custom_url(path))
6666

67+
def all(self, **params):
68+
resourceset = super().all(**params)
69+
70+
if self.redmine.ver is not None: # https://www.redmine.org/issues/32090#note-6
71+
if self.redmine.ver >= (5, 1, 2):
72+
resourceset.manager.url = f'{resourceset.manager.url}*'
73+
elif self.redmine.ver in ((5, 1, 0), (5, 1, 1)):
74+
resourceset.manager.url = (f'{resourceset.manager.url[:-7]}f[]=status_id&'
75+
f'op[status_id]==&v[status_id][]=1&v[status_id][]=2&v[status_id][]=3')
76+
77+
return resourceset
78+
6779
def _prepare_create_request(self, request):
6880
request = super()._prepare_create_request(request)
6981
request['send_information'] = request[self.container].pop('send_information', False)

tests/test_resources_standard.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1351,6 +1351,15 @@ def test_user_all(self):
13511351
self.assertEqual(users[1].id, 2)
13521352
self.assertEqual(users[1].firstname, 'Jack')
13531353

1354+
def test_user_all_url_variations(self):
1355+
self.redmine.ver = (5, 0, 0)
1356+
self.assertEqual(self.redmine.user.all().manager.url, f'{self.url}/users.json?status=')
1357+
self.redmine.ver = (5, 1, 0)
1358+
self.assertEqual(self.redmine.user.all().manager.url, f'{self.url}/users.json?f[]=status_id&'
1359+
f'op[status_id]==&v[status_id][]=1&v[status_id][]=2&v[status_id][]=3')
1360+
self.redmine.ver = (6, 0, 0)
1361+
self.assertEqual(self.redmine.user.all().manager.url, f'{self.url}/users.json?status=*')
1362+
13541363
def test_user_filter(self):
13551364
self.response.json.return_value = responses['user']['filter']
13561365
users = self.redmine.user.filter(status_id=2)

0 commit comments

Comments
 (0)