/edk2/AppPkg/Applications/Python/Python-2.7.2/Lib/test/buffer_tests.py

https://gitlab.com/envieidoc/Clover · Python · 206 lines · 172 code · 27 blank · 7 comment · 2 complexity · e0cbc0a6bc23759ff09faa492644440e MD5 · raw file

  1. # Tests that work for both bytes and buffer objects.
  2. # See PEP 3137.
  3. import struct
  4. import sys
  5. class MixinBytesBufferCommonTests(object):
  6. """Tests that work for both bytes and buffer objects.
  7. See PEP 3137.
  8. """
  9. def marshal(self, x):
  10. """Convert x into the appropriate type for these tests."""
  11. raise RuntimeError('test class must provide a marshal method')
  12. def test_islower(self):
  13. self.assertFalse(self.marshal(b'').islower())
  14. self.assertTrue(self.marshal(b'a').islower())
  15. self.assertFalse(self.marshal(b'A').islower())
  16. self.assertFalse(self.marshal(b'\n').islower())
  17. self.assertTrue(self.marshal(b'abc').islower())
  18. self.assertFalse(self.marshal(b'aBc').islower())
  19. self.assertTrue(self.marshal(b'abc\n').islower())
  20. self.assertRaises(TypeError, self.marshal(b'abc').islower, 42)
  21. def test_isupper(self):
  22. self.assertFalse(self.marshal(b'').isupper())
  23. self.assertFalse(self.marshal(b'a').isupper())
  24. self.assertTrue(self.marshal(b'A').isupper())
  25. self.assertFalse(self.marshal(b'\n').isupper())
  26. self.assertTrue(self.marshal(b'ABC').isupper())
  27. self.assertFalse(self.marshal(b'AbC').isupper())
  28. self.assertTrue(self.marshal(b'ABC\n').isupper())
  29. self.assertRaises(TypeError, self.marshal(b'abc').isupper, 42)
  30. def test_istitle(self):
  31. self.assertFalse(self.marshal(b'').istitle())
  32. self.assertFalse(self.marshal(b'a').istitle())
  33. self.assertTrue(self.marshal(b'A').istitle())
  34. self.assertFalse(self.marshal(b'\n').istitle())
  35. self.assertTrue(self.marshal(b'A Titlecased Line').istitle())
  36. self.assertTrue(self.marshal(b'A\nTitlecased Line').istitle())
  37. self.assertTrue(self.marshal(b'A Titlecased, Line').istitle())
  38. self.assertFalse(self.marshal(b'Not a capitalized String').istitle())
  39. self.assertFalse(self.marshal(b'Not\ta Titlecase String').istitle())
  40. self.assertFalse(self.marshal(b'Not--a Titlecase String').istitle())
  41. self.assertFalse(self.marshal(b'NOT').istitle())
  42. self.assertRaises(TypeError, self.marshal(b'abc').istitle, 42)
  43. def test_isspace(self):
  44. self.assertFalse(self.marshal(b'').isspace())
  45. self.assertFalse(self.marshal(b'a').isspace())
  46. self.assertTrue(self.marshal(b' ').isspace())
  47. self.assertTrue(self.marshal(b'\t').isspace())
  48. self.assertTrue(self.marshal(b'\r').isspace())
  49. self.assertTrue(self.marshal(b'\n').isspace())
  50. self.assertTrue(self.marshal(b' \t\r\n').isspace())
  51. self.assertFalse(self.marshal(b' \t\r\na').isspace())
  52. self.assertRaises(TypeError, self.marshal(b'abc').isspace, 42)
  53. def test_isalpha(self):
  54. self.assertFalse(self.marshal(b'').isalpha())
  55. self.assertTrue(self.marshal(b'a').isalpha())
  56. self.assertTrue(self.marshal(b'A').isalpha())
  57. self.assertFalse(self.marshal(b'\n').isalpha())
  58. self.assertTrue(self.marshal(b'abc').isalpha())
  59. self.assertFalse(self.marshal(b'aBc123').isalpha())
  60. self.assertFalse(self.marshal(b'abc\n').isalpha())
  61. self.assertRaises(TypeError, self.marshal(b'abc').isalpha, 42)
  62. def test_isalnum(self):
  63. self.assertFalse(self.marshal(b'').isalnum())
  64. self.assertTrue(self.marshal(b'a').isalnum())
  65. self.assertTrue(self.marshal(b'A').isalnum())
  66. self.assertFalse(self.marshal(b'\n').isalnum())
  67. self.assertTrue(self.marshal(b'123abc456').isalnum())
  68. self.assertTrue(self.marshal(b'a1b3c').isalnum())
  69. self.assertFalse(self.marshal(b'aBc000 ').isalnum())
  70. self.assertFalse(self.marshal(b'abc\n').isalnum())
  71. self.assertRaises(TypeError, self.marshal(b'abc').isalnum, 42)
  72. def test_isdigit(self):
  73. self.assertFalse(self.marshal(b'').isdigit())
  74. self.assertFalse(self.marshal(b'a').isdigit())
  75. self.assertTrue(self.marshal(b'0').isdigit())
  76. self.assertTrue(self.marshal(b'0123456789').isdigit())
  77. self.assertFalse(self.marshal(b'0123456789a').isdigit())
  78. self.assertRaises(TypeError, self.marshal(b'abc').isdigit, 42)
  79. def test_lower(self):
  80. self.assertEqual(b'hello', self.marshal(b'HeLLo').lower())
  81. self.assertEqual(b'hello', self.marshal(b'hello').lower())
  82. self.assertRaises(TypeError, self.marshal(b'hello').lower, 42)
  83. def test_upper(self):
  84. self.assertEqual(b'HELLO', self.marshal(b'HeLLo').upper())
  85. self.assertEqual(b'HELLO', self.marshal(b'HELLO').upper())
  86. self.assertRaises(TypeError, self.marshal(b'hello').upper, 42)
  87. def test_capitalize(self):
  88. self.assertEqual(b' hello ', self.marshal(b' hello ').capitalize())
  89. self.assertEqual(b'Hello ', self.marshal(b'Hello ').capitalize())
  90. self.assertEqual(b'Hello ', self.marshal(b'hello ').capitalize())
  91. self.assertEqual(b'Aaaa', self.marshal(b'aaaa').capitalize())
  92. self.assertEqual(b'Aaaa', self.marshal(b'AaAa').capitalize())
  93. self.assertRaises(TypeError, self.marshal(b'hello').capitalize, 42)
  94. def test_ljust(self):
  95. self.assertEqual(b'abc ', self.marshal(b'abc').ljust(10))
  96. self.assertEqual(b'abc ', self.marshal(b'abc').ljust(6))
  97. self.assertEqual(b'abc', self.marshal(b'abc').ljust(3))
  98. self.assertEqual(b'abc', self.marshal(b'abc').ljust(2))
  99. self.assertEqual(b'abc*******', self.marshal(b'abc').ljust(10, '*'))
  100. self.assertRaises(TypeError, self.marshal(b'abc').ljust)
  101. def test_rjust(self):
  102. self.assertEqual(b' abc', self.marshal(b'abc').rjust(10))
  103. self.assertEqual(b' abc', self.marshal(b'abc').rjust(6))
  104. self.assertEqual(b'abc', self.marshal(b'abc').rjust(3))
  105. self.assertEqual(b'abc', self.marshal(b'abc').rjust(2))
  106. self.assertEqual(b'*******abc', self.marshal(b'abc').rjust(10, '*'))
  107. self.assertRaises(TypeError, self.marshal(b'abc').rjust)
  108. def test_center(self):
  109. self.assertEqual(b' abc ', self.marshal(b'abc').center(10))
  110. self.assertEqual(b' abc ', self.marshal(b'abc').center(6))
  111. self.assertEqual(b'abc', self.marshal(b'abc').center(3))
  112. self.assertEqual(b'abc', self.marshal(b'abc').center(2))
  113. self.assertEqual(b'***abc****', self.marshal(b'abc').center(10, '*'))
  114. self.assertRaises(TypeError, self.marshal(b'abc').center)
  115. def test_swapcase(self):
  116. self.assertEqual(b'hEllO CoMPuTErS',
  117. self.marshal(b'HeLLo cOmpUteRs').swapcase())
  118. self.assertRaises(TypeError, self.marshal(b'hello').swapcase, 42)
  119. def test_zfill(self):
  120. self.assertEqual(b'123', self.marshal(b'123').zfill(2))
  121. self.assertEqual(b'123', self.marshal(b'123').zfill(3))
  122. self.assertEqual(b'0123', self.marshal(b'123').zfill(4))
  123. self.assertEqual(b'+123', self.marshal(b'+123').zfill(3))
  124. self.assertEqual(b'+123', self.marshal(b'+123').zfill(4))
  125. self.assertEqual(b'+0123', self.marshal(b'+123').zfill(5))
  126. self.assertEqual(b'-123', self.marshal(b'-123').zfill(3))
  127. self.assertEqual(b'-123', self.marshal(b'-123').zfill(4))
  128. self.assertEqual(b'-0123', self.marshal(b'-123').zfill(5))
  129. self.assertEqual(b'000', self.marshal(b'').zfill(3))
  130. self.assertEqual(b'34', self.marshal(b'34').zfill(1))
  131. self.assertEqual(b'0034', self.marshal(b'34').zfill(4))
  132. self.assertRaises(TypeError, self.marshal(b'123').zfill)
  133. def test_expandtabs(self):
  134. self.assertEqual(b'abc\rab def\ng hi',
  135. self.marshal(b'abc\rab\tdef\ng\thi').expandtabs())
  136. self.assertEqual(b'abc\rab def\ng hi',
  137. self.marshal(b'abc\rab\tdef\ng\thi').expandtabs(8))
  138. self.assertEqual(b'abc\rab def\ng hi',
  139. self.marshal(b'abc\rab\tdef\ng\thi').expandtabs(4))
  140. self.assertEqual(b'abc\r\nab def\ng hi',
  141. self.marshal(b'abc\r\nab\tdef\ng\thi').expandtabs(4))
  142. self.assertEqual(b'abc\rab def\ng hi',
  143. self.marshal(b'abc\rab\tdef\ng\thi').expandtabs())
  144. self.assertEqual(b'abc\rab def\ng hi',
  145. self.marshal(b'abc\rab\tdef\ng\thi').expandtabs(8))
  146. self.assertEqual(b'abc\r\nab\r\ndef\ng\r\nhi',
  147. self.marshal(b'abc\r\nab\r\ndef\ng\r\nhi').expandtabs(4))
  148. self.assertEqual(b' a\n b', self.marshal(b' \ta\n\tb').expandtabs(1))
  149. self.assertRaises(TypeError, self.marshal(b'hello').expandtabs, 42, 42)
  150. # This test is only valid when sizeof(int) == sizeof(void*) == 4.
  151. if sys.maxint < (1 << 32) and struct.calcsize('P') == 4:
  152. self.assertRaises(OverflowError,
  153. self.marshal(b'\ta\n\tb').expandtabs, sys.maxint)
  154. def test_title(self):
  155. self.assertEqual(b' Hello ', self.marshal(b' hello ').title())
  156. self.assertEqual(b'Hello ', self.marshal(b'hello ').title())
  157. self.assertEqual(b'Hello ', self.marshal(b'Hello ').title())
  158. self.assertEqual(b'Format This As Title String',
  159. self.marshal(b'fOrMaT thIs aS titLe String').title())
  160. self.assertEqual(b'Format,This-As*Title;String',
  161. self.marshal(b'fOrMaT,thIs-aS*titLe;String').title())
  162. self.assertEqual(b'Getint', self.marshal(b'getInt').title())
  163. self.assertRaises(TypeError, self.marshal(b'hello').title, 42)
  164. def test_splitlines(self):
  165. self.assertEqual([b'abc', b'def', b'', b'ghi'],
  166. self.marshal(b'abc\ndef\n\rghi').splitlines())
  167. self.assertEqual([b'abc', b'def', b'', b'ghi'],
  168. self.marshal(b'abc\ndef\n\r\nghi').splitlines())
  169. self.assertEqual([b'abc', b'def', b'ghi'],
  170. self.marshal(b'abc\ndef\r\nghi').splitlines())
  171. self.assertEqual([b'abc', b'def', b'ghi'],
  172. self.marshal(b'abc\ndef\r\nghi\n').splitlines())
  173. self.assertEqual([b'abc', b'def', b'ghi', b''],
  174. self.marshal(b'abc\ndef\r\nghi\n\r').splitlines())
  175. self.assertEqual([b'', b'abc', b'def', b'ghi', b''],
  176. self.marshal(b'\nabc\ndef\r\nghi\n\r').splitlines())
  177. self.assertEqual([b'\n', b'abc\n', b'def\r\n', b'ghi\n', b'\r'],
  178. self.marshal(b'\nabc\ndef\r\nghi\n\r').splitlines(1))
  179. self.assertRaises(TypeError, self.marshal(b'abc').splitlines, 42, 42)