| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 4781fd7 commit 03d8041
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -41,15 +41,14 @@ | |||
| 41 | 41 | ||
| 42 | 42 | ||
| 43 | 43 | def _sanitize(value): | |
| 44 | + if isinstance(value, dict): | ||
| 45 | + return dict((k, _sanitize(v)) | ||
| 46 | + for k, v in six.iteritems(value)) | ||
| 44 | 47 | if isinstance(value, six.string_types): | |
| 45 | 48 | return value.replace('/', '%2F') | |
| 46 | 49 | return value | |
| 47 | 50 | ||
| 48 | 51 | ||
| 49 | - def _sanitize_dict(src): | ||
| 50 | - return dict((k, _sanitize(v)) for k, v in src.items()) | ||
| 51 | - | ||
| 52 | - | ||
| 53 | 52 | class Gitlab(object): | |
| 54 | 53 | """Represents a GitLab server connection. | |
| 55 | 54 | ||
@@ -213,7 +212,7 @@ def set_url(self, url): | |||
| 213 | 212 | def _construct_url(self, id_, obj, parameters): | |
| 214 | 213 | if 'next_url' in parameters: | |
| 215 | 214 | return parameters['next_url'] | |
| 216 | - args = _sanitize_dict(parameters) | ||
| 215 | + args = _sanitize(parameters) | ||
| 217 | 216 | if id_ is None and obj._urlPlural is not None: | |
| 218 | 217 | url = obj._urlPlural % args | |
| 219 | 218 | else: | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -27,9 +27,25 @@ | |||
| 27 | 27 | from httmock import response # noqa | |
| 28 | 28 | from httmock import urlmatch # noqa | |
| 29 | 29 | ||
| 30 | + import gitlab | ||
| 30 | 31 | from gitlab import * # noqa | |
| 31 | 32 | ||
| 32 | 33 | ||
| 34 | + class TestSanitize(unittest.TestCase): | ||
| 35 | + def test_do_nothing(self): | ||
| 36 | + self.assertEqual(1, gitlab._sanitize(1)) | ||
| 37 | + self.assertEqual(1.5, gitlab._sanitize(1.5)) | ||
| 38 | + self.assertEqual("foo", gitlab._sanitize("foo")) | ||
| 39 | + | ||
| 40 | + def test_slash(self): | ||
| 41 | + self.assertEqual("foo%2Fbar", gitlab._sanitize("foo/bar")) | ||
| 42 | + | ||
| 43 | + def test_dict(self): | ||
| 44 | + source = {"url": "foo/bar", "id": 1} | ||
| 45 | + expected = {"url": "foo%2Fbar", "id": 1} | ||
| 46 | + self.assertEqual(expected, gitlab._sanitize(source)) | ||
| 47 | + | ||
| 48 | + | ||
| 33 | 49 | class TestGitlabRawMethods(unittest.TestCase): | |
| 34 | 50 | def setUp(self): | |
| 35 | 51 | self.gl = Gitlab("http://localhost", private_token="private_token", | |
| Back | FazBrowse Home | New Git URL |
0 commit comments