summaryrefslogtreecommitdiff
path: root/gitlab/mixins.py
diff options
context:
space:
mode:
authorGauvain Pocentek <gauvain@pocentek.net>2019-06-08 10:04:27 +0200
committerGauvain Pocentek <gauvain@pocentek.net>2019-06-08 10:04:27 +0200
commit14f538501bfb47c92e02e615d0817675158db3cf (patch)
tree8631c021a03e6c5d7f61f78e7ff10ab4340ab946 /gitlab/mixins.py
parent794d64c8ef8ef0448205b51ff4a25c1589c2b2dd (diff)
downloadgitlab-fix/779.tar.gz
fix: convert # to %23 in URLsfix/779
Refactor a bit to handle this change, and add unit tests. Closes #779
Diffstat (limited to 'gitlab/mixins.py')
-rw-r--r--gitlab/mixins.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/gitlab/mixins.py b/gitlab/mixins.py
index 70de992..b1309f6 100644
--- a/gitlab/mixins.py
+++ b/gitlab/mixins.py
@@ -20,6 +20,7 @@ from gitlab import base
from gitlab import cli
from gitlab import exceptions as exc
from gitlab import types as g_types
+from gitlab import utils
class GetMixin(object):
@@ -42,7 +43,7 @@ class GetMixin(object):
GitlabGetError: If the server cannot perform the request
"""
if not isinstance(id, int):
- id = id.replace("/", "%2F")
+ id = utils.clean_str_id(id)
path = "%s/%s" % (self.path, id)
if lazy is True:
return self._obj_cls(self, {self._obj_cls._id_attr: id})
@@ -299,7 +300,7 @@ class SetMixin(object):
Returns:
obj: The created/updated attribute
"""
- path = "%s/%s" % (self.path, key.replace("/", "%2F"))
+ path = "%s/%s" % (self.path, utils.clean_str_id(key))
data = {"value": value}
server_data = self.gitlab.http_put(path, post_data=data, **kwargs)
return self._obj_cls(self, server_data)
@@ -322,7 +323,7 @@ class DeleteMixin(object):
path = self.path
else:
if not isinstance(id, int):
- id = id.replace("/", "%2F")
+ id = utils.clean_str_id(id)
path = "%s/%s" % (self.path, id)
self.gitlab.http_delete(path, **kwargs)