GitHub

@@ -269,13 +269,33 @@ def test_range_format_context(self):

269269

self.assertEqual(fmt(3,6), '4,6')

270270

self.assertEqual(fmt(0,0), '0')

271271272+

class TestJunkAPIs(unittest.TestCase):

273+

def test_is_line_junk_true(self):

274+

for line in ['#', ' ', ' #', '# ', ' # ', '']:

275+

self.assertTrue(difflib.IS_LINE_JUNK(line), repr(line))

276+277+

def test_is_line_junk_false(self):

278+

for line in ['##', ' ##', '## ', 'abc ', 'abc #', 'Mr. Moose is up!']:

279+

self.assertFalse(difflib.IS_LINE_JUNK(line), repr(line))

280+281+

def test_is_line_junk_REDOS(self):

282+

evil_input = ('\t' * 1000000) + '##'

283+

self.assertFalse(difflib.IS_LINE_JUNK(evil_input))

284+285+

def test_is_character_junk_true(self):

286+

for char in [' ', '\t']:

287+

self.assertTrue(difflib.IS_CHARACTER_JUNK(char), repr(char))

288+289+

def test_is_character_junk_false(self):

290+

for char in ['a', '#', '\n', '\f', '\r', '\v']:

291+

self.assertFalse(difflib.IS_CHARACTER_JUNK(char), repr(char))

272292273293

def test_main():

274294

difflib.HtmlDiff._default_prefix = 0

275295

Doctests = doctest.DocTestSuite(difflib)

276296

run_unittest(

277297

TestWithAscii, TestAutojunk, TestSFpatches, TestSFbugs,

278-

TestOutputFormat, Doctests)

298+

TestOutputFormat, TestJunkAPIs)

279299280300

if __name__ == '__main__':

281301

test_main()

Read the original on github.com ↗