aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/test_uritemplate.py12
-rw-r--r--uritemplate/variable.py6
2 files changed, 14 insertions, 4 deletions
diff --git a/tests/test_uritemplate.py b/tests/test_uritemplate.py
index 9977ef7..f67ad26 100644
--- a/tests/test_uritemplate.py
+++ b/tests/test_uritemplate.py
@@ -470,12 +470,24 @@ class TestURITemplate(RFCTemplateExamples('RFCMeta', (TestCase,), {})):
'foo', [], True, '/'), None
)
self.assertEqual(t.variables[0]._label_path_expansion(
+ 'foo', [None], True, '/'), None
+ )
+ self.assertEqual(t.variables[0]._label_path_expansion(
+ 'foo', [None, None], True, '/'), None
+ )
+ self.assertEqual(t.variables[0]._label_path_expansion(
'foo', ['one'], True, '/'), 'one'
)
self.assertEqual(t.variables[0]._label_path_expansion(
'foo', ['one', 'two'], True, '/'), 'one/two'
)
self.assertEqual(t.variables[0]._label_path_expansion(
+ 'foo', ['one', None, 'two'], True, '/'), 'one/two'
+ )
+ self.assertEqual(t.variables[0]._label_path_expansion(
+ 'foo', [''], True, '/'), ''
+ )
+ self.assertEqual(t.variables[0]._label_path_expansion(
'foo', ['', ''], True, '/'), '/'
)
diff --git a/uritemplate/variable.py b/uritemplate/variable.py
index a3bd4ce..ce3f652 100644
--- a/uritemplate/variable.py
+++ b/uritemplate/variable.py
@@ -200,10 +200,8 @@ class URIVariable(object):
if not explode:
join_str = ','
- expanded = join_str.join(
- quote(v, safe) for v in value if value is not None
- )
- return expanded if expanded else None
+ fragments = [quote(v, safe) for v in value if v is not None]
+ return join_str.join(fragments) if fragments else None
if dict_test(value) or tuples:
items = items or sorted(value.items())