Complete clients.utils unittests
authorStavros Sachtouris <saxtouri@admin.grnet.gr>
Wed, 20 Mar 2013 11:33:20 +0000 (13:33 +0200)
committerStavros Sachtouris <saxtouri@admin.grnet.gr>
Wed, 20 Mar 2013 11:33:20 +0000 (13:33 +0200)
kamaki/clients/utils/__init__.py
kamaki/clients/utils/test.py

index 5ca0be9..bb9dc72 100644 (file)
@@ -90,21 +90,3 @@ def path4url(*args):
     while '//' in r:
         r = r.replace('//', '/')
     return ('/%s' % r.strip('/')) if r else ''
-
-
-def params4url(params):
-    """{'key1':'val1', 'key2':None, 'key3':15} --> "?key1=val1&key2&key3=15"
-
-    :param params: (dict) request parameters in the form key:val
-
-    :returns: (str) http-request friendly in the form ?key1=val1&key2=val2&...
-    """
-
-    assert(type(params) is dict)
-    result = ''
-    dlmtr = '?'
-    for name in params:
-        result += '%s%s' % (dlmtr, name)
-        result += '=%s' % params[name] or result
-        dlmtr = '&'
-    return result
index 7e0d796..70d070b 100644 (file)
@@ -123,6 +123,16 @@ class Utils(TestCase):
             else:
                 self.assert_dicts_are_equal(r, dict())
 
+    def test_path4url(self):
+        utf = u'\u03a6\u03bf\u03cd\u03c4\u03c3\u03bf\u03c2'.encode('utf-8')
+        for expected, args in (
+                ('', ('')),
+                ('/path1/path2', ('path1', 'path2')),
+                ('/1/number/0.28', (1, 'number', 0.28)),
+                ('/1/n/u/m/b/er/X', ('//1//', '//n//u///m////b/er/', 'X//')),
+                ('/p1/%s/p2' % utf.decode('utf-8'), ('p1', utf, 'p2'))):
+            self.assertEqual(utils.path4url(*args), expected)
+
 
 if __name__ == '__main__':
     from sys import argv