class Media:
def __init__(self, url, description):
self.url = url
- if description is None:
- self.description = None
- else:
- self.description = Paragraph()
- self.description.add(ColouredString(description, 'm'))
- self.description.end_word()
+ self.description = []
+ if description is not None:
+ for line in description.splitlines():
+ desc = Paragraph()
+ desc.add(ColouredString(line, 'm'))
+ desc.end_word()
+ self.description.append(desc)
def render(self, width):
yield ColouredString(self.url, "M")
if self.description is not None:
- for line in self.description.render(width-4):
- yield ColouredString(" ") + line
+ for para in self.description:
+ for line in para.render(width-4):
+ yield ColouredString(" ") + line
yield ColouredString("")
class Paragraph:
' mmm'),
ColouredString(''),
])
+
+ ma = Media('https://a.b/c', 'foo\nbar')
+ self.assertEqual(list(ma.render(40)), [
+ ColouredString('https://a.b/c',
+ 'MMMMMMMMMMMMM'),
+ ColouredString(' foo',
+ ' mmm'),
+ ColouredString(' bar',
+ ' mmm'),
+ ColouredString(''),
+ ])