if not isinstance(strings, (list, tuple)):
raise TypeError('Arguments to "Fn::Join" not fully resolved')
- return delim.join(strings)
+
+ def empty_for_none(v):
+ if v is None:
+ return ''
+ else:
+ return v
+
+ return delim.join(empty_for_none(value) for value in strings)
return _resolve(lambda k, v: k == 'Fn::Join', handle_join, s)
raw = {'Fn::Join': [' ', ['foo', 'bar', 'baz']]}
self.assertEqual(join(raw), 'foo bar baz')
+ def test_join_none(self):
+ raw = {'Fn::Join': [' ', ['foo', None, 'baz']]}
+ self.assertEqual(join(raw), 'foo baz')
+
def test_join_list(self):
raw = [{'Fn::Join': [' ', ['foo', 'bar', 'baz']]}, 'blarg', 'wibble']
parsed = join(raw)