Beispiel #1
0
 def test_overlapping_underscore_and_italic(self):
     # It's unclear what result to expect in this case.
     # This is one way of interpreting it
     self.assertEquals(
         parse_emphasis('_*he_llo*'),
         (italic + underline)('he') + italic('llo')
     )
Beispiel #2
0
 def test_complicated(self):
     # As reported by Stu
     self.assertEquals(
         parse_emphasis(
             'You can _underline_ words, make them **bold** or *italic* '
             'or even ***bold italic.***'),
         (plain('You can ') + underline('underline') +
          plain(' words, make them ') + bold('bold') + plain(' or ') +
          italic('italic') + plain(' or even ') +
          (bold + italic)('bold italic.')))
Beispiel #3
0
    def get_rich_attribute(self, name, default=[]):
        """Get an attribute from the title page parsed into a RichString.
        Returns a list of RichString objects.

        E.g. `screenplay.get_rich_attribute('Title')`

        """
        if name in self.title_page:
            return [parse_emphasis(line) for line in self.title_page[name]]
        else:
            return default
Beispiel #4
0
    def get_rich_attribute(self, name, default=[]):
        """Get an attribute from the title page parsed into a RichString.
        Returns a list of RichString objects.

        E.g. `screenplay.get_rich_attribute('Title')`

        """
        if name in self.title_page:
            return [parse_emphasis(line) for line in self.title_page[name]]
        else:
            return default
 def test_complicated(self):
     # As reported by Stu
     self.assertEquals(
         parse_emphasis(
             'You can _underline_ words, make them **bold** or *italic* '
             'or even ***bold italic.***'
         ), (
             plain('You can ') + underline('underline') +
             plain(' words, make them ') + bold('bold') + plain(' or ') +
             italic('italic') + plain(' or even ') +
             (bold + italic)('bold italic.')
         )
     )
Beispiel #6
0
 def test_parse_multiple_bold(self):
     self.assertEquals(
         parse_emphasis('x**Hello** **there**'),
         plain('x') + bold('Hello') + plain(' ') + bold('there')
     )
Beispiel #7
0
 def test_bold_inside_underline(self):
     self.assertEquals(
         parse_emphasis('_**hello**_'),
         (bold + underline)('hello')
     )
 def _create_dialog(self, character):
     return Dialog(
         parse_emphasis(character.strip()),
         _sequence_to_rich(line.strip() for line in self.lines[1:])
     )
Beispiel #9
0
 def test_additional_star(self):
     self.assertEquals(
         parse_emphasis('*foo* bar* baz'),
         italic('foo') + plain(' bar* baz')
     )
Beispiel #10
0
 def test_underline(self):
     self.assertEquals(
         parse_emphasis('_hello_'),
         underline('hello')
     )
Beispiel #11
0
 def test_italic_inside_bold(self):
     self.assertEquals(
         parse_emphasis('**Swedish *style* rules**'),
         bold('Swedish ') + (bold + italic)('style') + bold(' rules')
     )
Beispiel #12
0
 def test_italic_and_bold(self):
     self.assertEquals(
         parse_emphasis('***really strong***'),
         (bold + italic)('really strong')
     )
Beispiel #13
0
 def test_parse_without_emphasis(self):
     self.assertEquals(
         plain('Hello'), parse_emphasis('Hello'),
         'Expected parse_emphasis to return a plain string')
def _sequence_to_rich(lines):
    """Converts a sequence of strings into a list of RichString."""
    return [parse_emphasis(line) for line in lines]
Beispiel #15
0
 def test_simplified_complicated(self):
     self.assertEquals(
         parse_emphasis('*italic* or even ***bold italic.***'),
         italic('italic') + plain(' or even ') +
         (bold + italic)('bold italic.')
     )
Beispiel #16
0
 def test_two_bold_should_not_create_one_long_bold_string(self):
     self.assertEquals(
         parse_emphasis('**first** **second**'),
         bold('first') + plain(' ') + bold('second')
     )
Beispiel #17
0
 def test_parse_pre_and_postfix_and_bold(self):
     self.assertEquals(
         parse_emphasis('pre**Hello**post'),
         plain('pre') + bold('Hello') + plain('post')
     )
def _string_to_rich(line):
    """Converts a single string into a RichString.
    """
    return parse_emphasis(line)
Beispiel #19
0
def _string_to_rich(line):
    """Converts a single string into a RichString.
    """
    return parse_emphasis(line)
Beispiel #20
0
def _sequence_to_rich(lines):
    """Converts a sequence of strings into a list of RichString."""
    return [parse_emphasis(line) for line in lines]
Beispiel #21
0
 def _create_dialog(self, character):
     return Dialog(
         parse_emphasis(character.strip()),
         _sequence_to_rich(line.strip() for line in self.lines[1:]))
Beispiel #22
0
 def test_two_italic_should_not_create_one_long_italic_string(self):
     self.assertEquals(
         parse_emphasis('*first* *second*'),
         italic('first') + plain(' ') + italic('second')
     )
Beispiel #23
0
 def test_parse_adjacent_bold(self):
     self.assertEquals(
         parse_emphasis('**123**456**'),
         bold('123') + plain('456**')
     )
Beispiel #24
0
 def test_escaping_star_creates_a_literal_star(self):
     self.assertEquals(
         parse_emphasis(r'\*hello*'),
         plain('*hello*')
     )
Beispiel #25
0
 def test_italic(self):
     self.assertEquals(
         parse_emphasis('*Italian style*'),
         italic('Italian style')
     )
Beispiel #26
0
 def test_parse_bold(self):
     self.assertEquals(
         parse_emphasis('**Hello**'),
         bold('Hello')
     )
Beispiel #27
0
 def test_bold_inside_italic(self):
     self.assertEquals(
         parse_emphasis('*Swedish **style** rules*'),
         italic('Swedish ') + (bold + italic)('style') + italic(' rules')
     )