summaryrefslogtreecommitdiffstats
path: root/testapi/testapi-client/testapiclient/utils/url_parse.py
diff options
context:
space:
mode:
Diffstat (limited to 'testapi/testapi-client/testapiclient/utils/url_parse.py')
-rw-r--r--testapi/testapi-client/testapiclient/utils/url_parse.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/testapi/testapi-client/testapiclient/utils/url_parse.py b/testapi/testapi-client/testapiclient/utils/url_parse.py
new file mode 100644
index 0000000..08f7a63
--- /dev/null
+++ b/testapi/testapi-client/testapiclient/utils/url_parse.py
@@ -0,0 +1,22 @@
+import os
+
+from six.moves.urllib import parse
+
+
+def path_join(base, *urls):
+ def _path_join(base, url):
+ if not base.endswith('/'):
+ base += '/'
+ return parse.urljoin(base, url)
+
+ urls = (base,) + urls
+ return reduce(_path_join, urls)
+
+
+def query_join(base, **queries):
+ return base + '?' + parse.urlencode(queries)
+
+
+def resource_join(url):
+ testapi_url = os.environ.get('testapi_url')
+ return path_join(testapi_url, url)