Exemple #1
0
    def test_style_matching_non_greedy(self):
        formatter = OutputFormatter(True)

        self.assertEqual(
            '(\033[32m>=2.0,<2.3\033[0m)',
            formatter.format('(<info>>=2.0,<2.3</info>)')
        )
Exemple #2
0
    def test_nested_styles(self):
        formatter = OutputFormatter(True)

        self.assertEqual(
            '\033[37;41msome \033[0m\033[32msome info\033[0m\033[37;41m error\033[0m',
            formatter.format('<error>some <info>some info</info> error</error>')
        )
Exemple #3
0
    def test_adjacent_style(self):
        formatter = OutputFormatter(True)

        self.assertEqual(
            '\033[37;41msome error\033[0m\033[32msome info\033[0m',
            formatter.format('<error>some error</error><info>some info</info>')
        )
Exemple #4
0
    def test_nested_styles(self):
        formatter = OutputFormatter(True)

        self.assertEqual(
            '\033[37;41msome \033[0m\033[32msome info\033[0m\033[37;41m error\033[0m',
            formatter.format(
                '<error>some <info>some info</info> error</error>'))
Exemple #5
0
    def test_deep_nested_style(self):
        formatter = OutputFormatter(True)

        self.assertEqual(
            '\033[37;41merror\033[0m\033[32minfo\033[0m\033[33mcomment\033[0m\033[37;41merror\033[0m',
            formatter.format('<error>error<info>info<comment>comment</comment></info>error</error>')
        )
Exemple #6
0
    def test_adjacent_style(self):
        formatter = OutputFormatter(True)

        self.assertEqual(
            '\033[37;41msome error\033[0m\033[32msome info\033[0m',
            formatter.format(
                '<error>some error</error><info>some info</info>'))
Exemple #7
0
 def test_non_style_tag(self):
     formatter = OutputFormatter(True)
     self.assertEqual(
         '\033[32msome \033[0m\033[32m<tag> styled '
         '\033[0m\033[32m<p>single-char tag\033[0m\033[32m</p>\033[0m',
         formatter.format('<info>some <tag> styled <p>single-char tag</p></info>')
     )
Exemple #8
0
    def test_style_escaping(self):
        formatter = OutputFormatter(True)

        self.assertEqual(
            '(\033[32mz>=2.0,<a2.3\033[0m)',
            formatter.format('(<info>%s</info>)' %
                             formatter.escape('z>=2.0,<a2.3')))
Exemple #9
0
    def test_style_escaping(self):
        formatter = OutputFormatter(True)

        self.assertEqual(
            '(\033[32mz>=2.0,<a2.3\033[0m)',
            formatter.format('(<info>%s</info>)' % formatter.escape('z>=2.0,<a2.3'))
        )
Exemple #10
0
 def test_non_style_tag(self):
     formatter = OutputFormatter(True)
     self.assertEqual(
         '\033[32msome \033[0m\033[32m<tag> styled '
         '\033[0m\033[32m<p>single-char tag\033[0m\033[32m</p>\033[0m',
         formatter.format(
             '<info>some <tag> styled <p>single-char tag</p></info>'))
Exemple #11
0
    def test_redefined_style(self):
        formatter = OutputFormatter(True)

        style = OutputFormatterStyle('blue', 'white')
        formatter.set_style('info', style)

        self.assertEqual('\033[34;47msome custom msg\033[0m',
                         formatter.format('<info>some custom msg</info>'))
Exemple #12
0
    def test_lg_char_escaping(self):
        formatter = OutputFormatter(True)

        self.assertEqual('foo<bar', formatter.format('foo\\<bar'))
        self.assertEqual('<info>some info</info>',
                         formatter.format('\\<info>some info\\</info>'))
        self.assertEqual('\\<info>some info\\</info>',
                         OutputFormatter.escape('<info>some info</info>'))
Exemple #13
0
    def test_deep_nested_style(self):
        formatter = OutputFormatter(True)

        self.assertEqual(
            '\033[37;41merror\033[0m\033[32minfo\033[0m\033[33mcomment\033[0m\033[37;41merror\033[0m',
            formatter.format(
                '<error>error<info>info<comment>comment</comment></info>error</error>'
            ))
Exemple #14
0
    def test_redefined_style(self):
        formatter = OutputFormatter(True)

        style = OutputFormatterStyle('blue', 'white')
        formatter.set_style('info', style)

        self.assertEqual(
            '\033[34;47msome custom msg\033[0m',
            formatter.format('<info>some custom msg</info>')
        )
Exemple #15
0
    def test_inline_style(self):
        formatter = OutputFormatter(True)

        self.assertEqual('\033[34;41msome text\033[0m',
                         formatter.format('<fg=blue;bg=red>some text</>'))
        self.assertEqual(
            '\033[34;41msome text\033[0m',
            formatter.format('<fg=blue;bg=red>some text</fg=blue;bg=red>'))
        self.assertEqual(
            '\033[34;41;1msome text\033[0m',
            formatter.format('<fg=blue;bg=red;options=bold>some text</>'))
Exemple #16
0
    def test_lg_char_escaping(self):
        formatter = OutputFormatter(True)

        self.assertEqual('foo<bar', formatter.format('foo\\<bar'))
        self.assertEqual(
            '<info>some info</info>',
            formatter.format('\\<info>some info\\</info>')
        )
        self.assertEqual(
            '\\<info>some info\\</info>',
            OutputFormatter.escape('<info>some info</info>')
        )
Exemple #17
0
    def test_inline_style(self):
        formatter = OutputFormatter(True)

        self.assertEqual(
            '\033[34;41msome text\033[0m',
            formatter.format('<fg=blue;bg=red>some text</>')
        )
        self.assertEqual(
            '\033[34;41msome text\033[0m',
            formatter.format('<fg=blue;bg=red>some text</fg=blue;bg=red>')
        )
        self.assertEqual(
            '\033[34;41;1msome text\033[0m',
            formatter.format('<fg=blue;bg=red;options=bold>some text</>')
        )
Exemple #18
0
    def test_bundled_styles(self):
        formatter = OutputFormatter(True)

        self.assertTrue(formatter.has_style('error'))
        self.assertTrue(formatter.has_style('info'))
        self.assertTrue(formatter.has_style('comment'))
        self.assertTrue(formatter.has_style('question'))

        self.assertEqual('\033[37;41msome error\033[0m',
                         formatter.format('<error>some error</error>'))
        self.assertEqual('\033[32msome info\033[0m',
                         formatter.format('<info>some info</info>'))
        self.assertEqual('\033[33msome comment\033[0m',
                         formatter.format('<comment>some comment</comment>'))
        self.assertEqual(
            '\033[30;46msome question\033[0m',
            formatter.format('<question>some question</question>'))
Exemple #19
0
    def test_new_style(self):
        formatter = OutputFormatter(True)

        style = OutputFormatterStyle('blue', 'white')
        formatter.set_style('test', style)

        self.assertEqual(style, formatter.get_style('test'))
        self.assertNotEqual(style, formatter.get_style('info'))

        style = OutputFormatterStyle('blue', 'white')
        formatter.set_style('b', style)

        self.assertEqual(
            '\033[34;47msome \033[0m\033[34;47mcustom\033[0m\033[34;47m msg\033[0m',
            formatter.format('<test>some <b>custom</b> msg</test>'))
Exemple #20
0
    def test_new_style(self):
        formatter = OutputFormatter(True)

        style = OutputFormatterStyle('blue', 'white')
        formatter.set_style('test', style)

        self.assertEqual(style, formatter.get_style('test'))
        self.assertNotEqual(style, formatter.get_style('info'))

        style = OutputFormatterStyle('blue', 'white')
        formatter.set_style('b', style)

        self.assertEqual(
            '\033[34;47msome \033[0m\033[34;47mcustom\033[0m\033[34;47m msg\033[0m',
            formatter.format('<test>some <b>custom</b> msg</test>')
        )
Exemple #21
0
    def test_bundled_styles(self):
        formatter = OutputFormatter(True)

        self.assertTrue(formatter.has_style('error'))
        self.assertTrue(formatter.has_style('info'))
        self.assertTrue(formatter.has_style('comment'))
        self.assertTrue(formatter.has_style('question'))

        self.assertEqual(
            '\033[37;41msome error\033[0m',
            formatter.format('<error>some error</error>')
        )
        self.assertEqual(
            '\033[32msome info\033[0m',
            formatter.format('<info>some info</info>')
        )
        self.assertEqual(
            '\033[33msome comment\033[0m',
            formatter.format('<comment>some comment</comment>')
        )
        self.assertEqual(
            '\033[30;46msome question\033[0m',
            formatter.format('<question>some question</question>')
        )
Exemple #22
0
 def test_empty_tag(self):
     formatter = OutputFormatter(True)
     self.assertEqual('foo<>bar', formatter.format('foo<>bar'))
Exemple #23
0
    def test_test_non_decorated_formatter(self):
        formatter = OutputFormatter(False)

        self.assertTrue(formatter.has_style('error'))
        self.assertTrue(formatter.has_style('info'))
        self.assertTrue(formatter.has_style('comment'))
        self.assertTrue(formatter.has_style('question'))

        self.assertEqual('some error',
                         formatter.format('<error>some error</error>'))
        self.assertEqual('some info',
                         formatter.format('<info>some info</info>'))
        self.assertEqual('some comment',
                         formatter.format('<comment>some comment</comment>'))
        self.assertEqual(
            'some question',
            formatter.format('<question>some question</question>'))

        formatter.set_decorated(True)

        self.assertEqual('\033[37;41msome error\033[0m',
                         formatter.format('<error>some error</error>'))
        self.assertEqual('\033[32msome info\033[0m',
                         formatter.format('<info>some info</info>'))
        self.assertEqual('\033[33msome comment\033[0m',
                         formatter.format('<comment>some comment</comment>'))
        self.assertEqual(
            '\033[30;46msome question\033[0m',
            formatter.format('<question>some question</question>'))
Exemple #24
0
    def test_style_matching_non_greedy(self):
        formatter = OutputFormatter(True)

        self.assertEqual('(\033[32m>=2.0,<2.3\033[0m)',
                         formatter.format('(<info>>=2.0,<2.3</info>)'))
Exemple #25
0
    def test_test_non_decorated_formatter(self):
        formatter = OutputFormatter(False)

        self.assertTrue(formatter.has_style('error'))
        self.assertTrue(formatter.has_style('info'))
        self.assertTrue(formatter.has_style('comment'))
        self.assertTrue(formatter.has_style('question'))

        self.assertEqual(
            'some error',
            formatter.format('<error>some error</error>')
        )
        self.assertEqual(
            'some info',
            formatter.format('<info>some info</info>')
        )
        self.assertEqual(
            'some comment',
            formatter.format('<comment>some comment</comment>')
        )
        self.assertEqual(
            'some question',
            formatter.format('<question>some question</question>')
        )

        formatter.set_decorated(True)

        self.assertEqual(
            '\033[37;41msome error\033[0m',
            formatter.format('<error>some error</error>')
        )
        self.assertEqual(
            '\033[32msome info\033[0m',
            formatter.format('<info>some info</info>')
        )
        self.assertEqual(
            '\033[33msome comment\033[0m',
            formatter.format('<comment>some comment</comment>')
        )
        self.assertEqual(
            '\033[30;46msome question\033[0m',
            formatter.format('<question>some question</question>')
        )
Exemple #26
0
    def test_content_with_line_breaks(self):
        formatter = OutputFormatter(True)

        for expected, message in self.provide_content_with_line_breaks():
            self.assertEqual(expected, formatter.format(message))
Exemple #27
0
 def test_empty_tag(self):
     formatter = OutputFormatter(True)
     self.assertEqual('foo<>bar', formatter.format('foo<>bar'))
Exemple #28
0
    def test_content_with_line_breaks(self):
        formatter = OutputFormatter(True)

        for expected, message in self.provide_content_with_line_breaks():
            self.assertEqual(expected, formatter.format(message))