10a8c90248264a8b26970b4473770bcc3df8515fJosh Gao# Tests that work for both bytes and buffer objects. 20a8c90248264a8b26970b4473770bcc3df8515fJosh Gao# See PEP 3137. 30a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 40a8c90248264a8b26970b4473770bcc3df8515fJosh Gaoimport struct 50a8c90248264a8b26970b4473770bcc3df8515fJosh Gaoimport sys 60a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 70a8c90248264a8b26970b4473770bcc3df8515fJosh Gaoclass MixinBytesBufferCommonTests(object): 80a8c90248264a8b26970b4473770bcc3df8515fJosh Gao """Tests that work for both bytes and buffer objects. 90a8c90248264a8b26970b4473770bcc3df8515fJosh Gao See PEP 3137. 100a8c90248264a8b26970b4473770bcc3df8515fJosh Gao """ 110a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 120a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def marshal(self, x): 130a8c90248264a8b26970b4473770bcc3df8515fJosh Gao """Convert x into the appropriate type for these tests.""" 140a8c90248264a8b26970b4473770bcc3df8515fJosh Gao raise RuntimeError('test class must provide a marshal method') 150a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 160a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_islower(self): 170a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'').islower()) 180a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'a').islower()) 190a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'A').islower()) 200a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'\n').islower()) 210a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'abc').islower()) 220a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'aBc').islower()) 230a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'abc\n').islower()) 240a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(TypeError, self.marshal(b'abc').islower, 42) 250a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 260a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_isupper(self): 270a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'').isupper()) 280a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'a').isupper()) 290a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'A').isupper()) 300a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'\n').isupper()) 310a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'ABC').isupper()) 320a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'AbC').isupper()) 330a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'ABC\n').isupper()) 340a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(TypeError, self.marshal(b'abc').isupper, 42) 350a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 360a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_istitle(self): 370a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'').istitle()) 380a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'a').istitle()) 390a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'A').istitle()) 400a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'\n').istitle()) 410a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'A Titlecased Line').istitle()) 420a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'A\nTitlecased Line').istitle()) 430a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'A Titlecased, Line').istitle()) 440a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'Not a capitalized String').istitle()) 450a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'Not\ta Titlecase String').istitle()) 460a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'Not--a Titlecase String').istitle()) 470a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'NOT').istitle()) 480a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(TypeError, self.marshal(b'abc').istitle, 42) 490a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 500a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_isspace(self): 510a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'').isspace()) 520a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'a').isspace()) 530a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b' ').isspace()) 540a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'\t').isspace()) 550a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'\r').isspace()) 560a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'\n').isspace()) 570a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b' \t\r\n').isspace()) 580a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b' \t\r\na').isspace()) 590a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(TypeError, self.marshal(b'abc').isspace, 42) 600a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 610a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_isalpha(self): 620a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'').isalpha()) 630a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'a').isalpha()) 640a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'A').isalpha()) 650a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'\n').isalpha()) 660a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'abc').isalpha()) 670a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'aBc123').isalpha()) 680a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'abc\n').isalpha()) 690a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(TypeError, self.marshal(b'abc').isalpha, 42) 700a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 710a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_isalnum(self): 720a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'').isalnum()) 730a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'a').isalnum()) 740a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'A').isalnum()) 750a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'\n').isalnum()) 760a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'123abc456').isalnum()) 770a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'a1b3c').isalnum()) 780a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'aBc000 ').isalnum()) 790a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'abc\n').isalnum()) 800a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(TypeError, self.marshal(b'abc').isalnum, 42) 810a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 820a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_isdigit(self): 830a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'').isdigit()) 840a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'a').isdigit()) 850a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'0').isdigit()) 860a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertTrue(self.marshal(b'0123456789').isdigit()) 870a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertFalse(self.marshal(b'0123456789a').isdigit()) 880a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 890a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(TypeError, self.marshal(b'abc').isdigit, 42) 900a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 910a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_lower(self): 920a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'hello', self.marshal(b'HeLLo').lower()) 930a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'hello', self.marshal(b'hello').lower()) 940a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(TypeError, self.marshal(b'hello').lower, 42) 950a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 960a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_upper(self): 970a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'HELLO', self.marshal(b'HeLLo').upper()) 980a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'HELLO', self.marshal(b'HELLO').upper()) 990a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(TypeError, self.marshal(b'hello').upper, 42) 1000a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 1010a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_capitalize(self): 1020a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b' hello ', self.marshal(b' hello ').capitalize()) 1030a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'Hello ', self.marshal(b'Hello ').capitalize()) 1040a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'Hello ', self.marshal(b'hello ').capitalize()) 1050a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'Aaaa', self.marshal(b'aaaa').capitalize()) 1060a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'Aaaa', self.marshal(b'AaAa').capitalize()) 1070a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 1080a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(TypeError, self.marshal(b'hello').capitalize, 42) 1090a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 1100a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_ljust(self): 1110a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'abc ', self.marshal(b'abc').ljust(10)) 1120a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'abc ', self.marshal(b'abc').ljust(6)) 1130a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'abc', self.marshal(b'abc').ljust(3)) 1140a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'abc', self.marshal(b'abc').ljust(2)) 1150a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'abc*******', self.marshal(b'abc').ljust(10, '*')) 1160a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(TypeError, self.marshal(b'abc').ljust) 1170a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 1180a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_rjust(self): 1190a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b' abc', self.marshal(b'abc').rjust(10)) 1200a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b' abc', self.marshal(b'abc').rjust(6)) 1210a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'abc', self.marshal(b'abc').rjust(3)) 1220a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'abc', self.marshal(b'abc').rjust(2)) 1230a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'*******abc', self.marshal(b'abc').rjust(10, '*')) 1240a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(TypeError, self.marshal(b'abc').rjust) 1250a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 1260a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_center(self): 1270a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b' abc ', self.marshal(b'abc').center(10)) 1280a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b' abc ', self.marshal(b'abc').center(6)) 1290a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'abc', self.marshal(b'abc').center(3)) 1300a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'abc', self.marshal(b'abc').center(2)) 1310a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'***abc****', self.marshal(b'abc').center(10, '*')) 1320a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(TypeError, self.marshal(b'abc').center) 1330a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 1340a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_swapcase(self): 1350a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'hEllO CoMPuTErS', 1360a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.marshal(b'HeLLo cOmpUteRs').swapcase()) 1370a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 1380a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(TypeError, self.marshal(b'hello').swapcase, 42) 1390a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 1400a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_zfill(self): 1410a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'123', self.marshal(b'123').zfill(2)) 1420a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'123', self.marshal(b'123').zfill(3)) 1430a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'0123', self.marshal(b'123').zfill(4)) 1440a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'+123', self.marshal(b'+123').zfill(3)) 1450a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'+123', self.marshal(b'+123').zfill(4)) 1460a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'+0123', self.marshal(b'+123').zfill(5)) 1470a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'-123', self.marshal(b'-123').zfill(3)) 1480a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'-123', self.marshal(b'-123').zfill(4)) 1490a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'-0123', self.marshal(b'-123').zfill(5)) 1500a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'000', self.marshal(b'').zfill(3)) 1510a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'34', self.marshal(b'34').zfill(1)) 1520a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'0034', self.marshal(b'34').zfill(4)) 1530a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 1540a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(TypeError, self.marshal(b'123').zfill) 1550a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 1560a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_expandtabs(self): 1570a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'abc\rab def\ng hi', 1580a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.marshal(b'abc\rab\tdef\ng\thi').expandtabs()) 1590a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'abc\rab def\ng hi', 1600a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.marshal(b'abc\rab\tdef\ng\thi').expandtabs(8)) 1610a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'abc\rab def\ng hi', 1620a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.marshal(b'abc\rab\tdef\ng\thi').expandtabs(4)) 1630a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'abc\r\nab def\ng hi', 1640a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.marshal(b'abc\r\nab\tdef\ng\thi').expandtabs(4)) 1650a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'abc\rab def\ng hi', 1660a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.marshal(b'abc\rab\tdef\ng\thi').expandtabs()) 1670a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'abc\rab def\ng hi', 1680a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.marshal(b'abc\rab\tdef\ng\thi').expandtabs(8)) 1690a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'abc\r\nab\r\ndef\ng\r\nhi', 1700a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.marshal(b'abc\r\nab\r\ndef\ng\r\nhi').expandtabs(4)) 1710a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b' a\n b', self.marshal(b' \ta\n\tb').expandtabs(1)) 1720a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 1730a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(TypeError, self.marshal(b'hello').expandtabs, 42, 42) 1740a8c90248264a8b26970b4473770bcc3df8515fJosh Gao # This test is only valid when sizeof(int) == sizeof(void*) == 4. 1750a8c90248264a8b26970b4473770bcc3df8515fJosh Gao if sys.maxint < (1 << 32) and struct.calcsize('P') == 4: 1760a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(OverflowError, 1770a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.marshal(b'\ta\n\tb').expandtabs, sys.maxint) 1780a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 1790a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_title(self): 1800a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b' Hello ', self.marshal(b' hello ').title()) 1810a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'Hello ', self.marshal(b'hello ').title()) 1820a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'Hello ', self.marshal(b'Hello ').title()) 1830a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'Format This As Title String', 1840a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.marshal(b'fOrMaT thIs aS titLe String').title()) 1850a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'Format,This-As*Title;String', 1860a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.marshal(b'fOrMaT,thIs-aS*titLe;String').title()) 1870a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual(b'Getint', self.marshal(b'getInt').title()) 1880a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(TypeError, self.marshal(b'hello').title, 42) 1890a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 1900a8c90248264a8b26970b4473770bcc3df8515fJosh Gao def test_splitlines(self): 1910a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual([b'abc', b'def', b'', b'ghi'], 1920a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.marshal(b'abc\ndef\n\rghi').splitlines()) 1930a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual([b'abc', b'def', b'', b'ghi'], 1940a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.marshal(b'abc\ndef\n\r\nghi').splitlines()) 1950a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual([b'abc', b'def', b'ghi'], 1960a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.marshal(b'abc\ndef\r\nghi').splitlines()) 1970a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual([b'abc', b'def', b'ghi'], 1980a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.marshal(b'abc\ndef\r\nghi\n').splitlines()) 1990a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual([b'abc', b'def', b'ghi', b''], 2000a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.marshal(b'abc\ndef\r\nghi\n\r').splitlines()) 2010a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual([b'', b'abc', b'def', b'ghi', b''], 2020a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.marshal(b'\nabc\ndef\r\nghi\n\r').splitlines()) 2030a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertEqual([b'\n', b'abc\n', b'def\r\n', b'ghi\n', b'\r'], 2040a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.marshal(b'\nabc\ndef\r\nghi\n\r').splitlines(1)) 2050a8c90248264a8b26970b4473770bcc3df8515fJosh Gao 2060a8c90248264a8b26970b4473770bcc3df8515fJosh Gao self.assertRaises(TypeError, self.marshal(b'abc').splitlines, 42, 42) 207