diff options
-rw-r--r-- | tests/test_uritemplate.py | 12 | ||||
-rw-r--r-- | uritemplate/variable.py | 6 |
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()) |