mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	Add FencedBlockPreprocessorTest.
(imported from commit a7f73f04408288192b33f688bd5baadd362f9458)
This commit is contained in:
		
							
								
								
									
										112
									
								
								zerver/tests.py
									
									
									
									
									
								
							
							
						
						
									
										112
									
								
								zerver/tests.py
									
									
									
									
									
								
							@@ -2794,6 +2794,118 @@ class GetSubscribersTest(AuthedTestCase):
 | 
			
		||||
        self.assert_json_error(result,
 | 
			
		||||
                               "Unable to retrieve subscribers for invite-only stream")
 | 
			
		||||
 | 
			
		||||
class FencedBlockPreprocessorTest(TestCase):
 | 
			
		||||
    def test_simple_quoting(self):
 | 
			
		||||
        processor = bugdown.fenced_code.FencedBlockPreprocessor(None)
 | 
			
		||||
        markdown = [
 | 
			
		||||
            '~~~ quote',
 | 
			
		||||
            'hi',
 | 
			
		||||
            'bye',
 | 
			
		||||
            '',
 | 
			
		||||
            ''
 | 
			
		||||
        ]
 | 
			
		||||
        expected = [
 | 
			
		||||
            '',
 | 
			
		||||
            '> hi',
 | 
			
		||||
            '> bye',
 | 
			
		||||
            '',
 | 
			
		||||
            '',
 | 
			
		||||
            ''
 | 
			
		||||
        ]
 | 
			
		||||
        lines = processor.run(markdown)
 | 
			
		||||
        self.assertEqual(lines, expected)
 | 
			
		||||
 | 
			
		||||
    def test_serial_quoting(self):
 | 
			
		||||
        processor = bugdown.fenced_code.FencedBlockPreprocessor(None)
 | 
			
		||||
        markdown = [
 | 
			
		||||
            '~~~ quote',
 | 
			
		||||
            'hi',
 | 
			
		||||
            '~~~',
 | 
			
		||||
            '',
 | 
			
		||||
            '~~~ quote',
 | 
			
		||||
            'bye',
 | 
			
		||||
            '',
 | 
			
		||||
            ''
 | 
			
		||||
        ]
 | 
			
		||||
        expected = [
 | 
			
		||||
            '',
 | 
			
		||||
            '> hi',
 | 
			
		||||
            '',
 | 
			
		||||
            '',
 | 
			
		||||
            '',
 | 
			
		||||
            '> bye',
 | 
			
		||||
            '',
 | 
			
		||||
            '',
 | 
			
		||||
            ''
 | 
			
		||||
        ]
 | 
			
		||||
        lines = processor.run(markdown)
 | 
			
		||||
        self.assertEqual(lines, expected)
 | 
			
		||||
 | 
			
		||||
    def test_serial_code(self):
 | 
			
		||||
        processor = bugdown.fenced_code.FencedBlockPreprocessor(None)
 | 
			
		||||
 | 
			
		||||
        # Simulate code formatting.
 | 
			
		||||
        processor.format_code = lambda lang, code: lang + ':' + code
 | 
			
		||||
        processor.placeholder = lambda s: '(' + s + ')'
 | 
			
		||||
 | 
			
		||||
        markdown = [
 | 
			
		||||
            '``` .py',
 | 
			
		||||
            'hello()',
 | 
			
		||||
            '```',
 | 
			
		||||
            '',
 | 
			
		||||
            '``` .py',
 | 
			
		||||
            'goodbye()',
 | 
			
		||||
            '```',
 | 
			
		||||
            '',
 | 
			
		||||
            ''
 | 
			
		||||
        ]
 | 
			
		||||
        expected = [
 | 
			
		||||
            '',
 | 
			
		||||
            '(py:hello()',
 | 
			
		||||
            ')',
 | 
			
		||||
            '',
 | 
			
		||||
            '',
 | 
			
		||||
            '',
 | 
			
		||||
            '(py:goodbye()',
 | 
			
		||||
            ')',
 | 
			
		||||
            '',
 | 
			
		||||
            '',
 | 
			
		||||
            ''
 | 
			
		||||
        ]
 | 
			
		||||
        lines = processor.run(markdown)
 | 
			
		||||
        self.assertEqual(lines, expected)
 | 
			
		||||
 | 
			
		||||
    def test_nested_code(self):
 | 
			
		||||
        processor = bugdown.fenced_code.FencedBlockPreprocessor(None)
 | 
			
		||||
 | 
			
		||||
        # Simulate code formatting.
 | 
			
		||||
        processor.format_code = lambda lang, code: lang + ':' + code
 | 
			
		||||
        processor.placeholder = lambda s: '(' + s + ')'
 | 
			
		||||
 | 
			
		||||
        markdown = [
 | 
			
		||||
            '~~~ quote',
 | 
			
		||||
            'hi',
 | 
			
		||||
            '``` .py',
 | 
			
		||||
            'hello()',
 | 
			
		||||
            '```',
 | 
			
		||||
            '',
 | 
			
		||||
            ''
 | 
			
		||||
        ]
 | 
			
		||||
        expected = [
 | 
			
		||||
            '',
 | 
			
		||||
            '> hi',
 | 
			
		||||
            '',
 | 
			
		||||
            '> (py:hello()',
 | 
			
		||||
            '> )',
 | 
			
		||||
            '',
 | 
			
		||||
            '',
 | 
			
		||||
            '',
 | 
			
		||||
            '',
 | 
			
		||||
            ''
 | 
			
		||||
        ]
 | 
			
		||||
        lines = processor.run(markdown)
 | 
			
		||||
        self.assertEqual(lines, expected)
 | 
			
		||||
 | 
			
		||||
def bugdown_convert(text):
 | 
			
		||||
    return bugdown.convert(text, "zulip.com")
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user