mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 14:03:30 +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,
 | 
					        self.assert_json_error(result,
 | 
				
			||||||
                               "Unable to retrieve subscribers for invite-only stream")
 | 
					                               "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):
 | 
					def bugdown_convert(text):
 | 
				
			||||||
    return bugdown.convert(text, "zulip.com")
 | 
					    return bugdown.convert(text, "zulip.com")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user