Lines Matching refs:self

37     def test_isbigendian(self):
38 self.assertEqual((struct.pack('=i', 1)[0] == 0), ISBIGENDIAN)
40 def test_consistence(self):
41 self.assertRaises(struct.error, struct.calcsize, 'Z')
44 self.assertEqual(sz * 3, struct.calcsize('iii'))
50 self.assertEqual(sz * 3, sz3)
52 self.assertRaises(struct.error, struct.pack, 'iii', 3)
53 self.assertRaises(struct.error, struct.pack, 'i', 3, 3, 3)
54 self.assertRaises((TypeError, struct.error), struct.pack, 'i', 'foo')
55 self.assertRaises((TypeError, struct.error), struct.pack, 'P', 'foo')
56 self.assertRaises(struct.error, struct.unpack, 'd', b'flap')
58 self.assertRaises(struct.error, struct.unpack, 'iii', s)
59 self.assertRaises(struct.error, struct.unpack, 'i', s)
61 def test_transitiveness(self):
76 self.assertEqual(cp, c)
77 self.assertEqual(bp, b)
78 self.assertEqual(hp, h)
79 self.assertEqual(ip, i)
80 self.assertEqual(lp, l)
81 self.assertEqual(int(100 * fp), int(100 * f))
82 self.assertEqual(int(100 * dp), int(100 * d))
83 self.assertEqual(tp, t)
85 def test_new_features(self):
132 self.assertEqual(res, exp)
133 self.assertEqual(struct.calcsize(xfmt), len(res))
136 self.assertTrue(asy)
138 def test_calcsize(self):
151 self.assertEqual(size, expected_size[code])
159 self.assertEqual(signed_size, unsigned_size)
162 self.assertEqual(struct.calcsize('b'), 1)
163 self.assertLessEqual(2, struct.calcsize('h'))
164 self.assertLessEqual(4, struct.calcsize('l'))
165 self.assertLessEqual(struct.calcsize('h'), struct.calcsize('i'))
166 self.assertLessEqual(struct.calcsize('i'), struct.calcsize('l'))
167 self.assertLessEqual(8, struct.calcsize('q'))
168 self.assertLessEqual(struct.calcsize('l'), struct.calcsize('q'))
169 self.assertGreaterEqual(struct.calcsize('n'), struct.calcsize('i'))
170 self.assertGreaterEqual(struct.calcsize('n'), struct.calcsize('P'))
172 def test_integers(self):
177 def __init__(self, format):
178 super(IntTester, self).__init__(methodName='test_one')
179 self.format = format
180 self.code = format[-1]
181 self.byteorder = format[:-1]
182 if not self.byteorder in byteorders:
184 self.byteorder)
185 self.bytesize = struct.calcsize(format)
186 self.bitsize = self.bytesize * 8
187 if self.code in tuple('bhilqn'):
188 self.signed = True
189 self.min_value = -(2**(self.bitsize-1))
190 self.max_value = 2**(self.bitsize-1) - 1
191 elif self.code in tuple('BHILQN'):
192 self.signed = False
193 self.min_value = 0
194 self.max_value = 2**self.bitsize - 1
197 self.code)
199 def test_one(self, x, pack=struct.pack,
203 format = self.format
204 if self.min_value <= x <= self.max_value:
206 if self.signed and x < 0:
207 expected += 1 << self.bitsize
208 self.assertGreaterEqual(expected, 0)
214 expected = (b"\x00" * (self.bytesize - len(expected)) +
216 if (self.byteorder == '<' or
217 self.byteorder in ('', '@', '=') and not ISBIGENDIAN):
219 self.assertEqual(len(expected), self.bytesize)
223 self.assertEqual(got, expected)
227 self.assertEqual(x, retrieved)
230 self.assertRaises((struct.error, TypeError), unpack, format,
234 self.assertRaises((OverflowError, ValueError, struct.error),
237 def run(self):
242 for exp in range(self.bitsize + 3):
246 for i in range(self.bitsize):
248 for j in range(self.bytesize):
263 self.test_one(x)
267 def __int__(self):
274 def __init__(self, value):
275 self._value = value
277 def __index__(self):
278 return self._value
283 def __index__(self):
286 def __int__(self):
289 self.assertRaises((TypeError, struct.error),
290 struct.pack, self.format,
292 self.assertRaises((TypeError, struct.error),
293 struct.pack, self.format,
295 self.assertRaises((TypeError, struct.error),
296 struct.pack, self.format,
298 self.assertRaises((TypeError, struct.error),
299 struct.pack, self.format,
301 self.assertRaises((TypeError, struct.error),
302 struct.pack, self.format,
311 self.fail("integer code pack failed on object "
317 self.assertRaises((TypeError, struct.error),
318 struct.pack, self.format,
326 def test_nN_code(self):
329 with self.assertRaises(struct.error) as cm:
331 self.assertIn("bad char in struct format", str(cm.exception))
339 def test_p_code(self):
351 self.assertEqual(got, expected)
353 self.assertEqual(got, expectedback)
355 def test_705836(self):
370 self.assertEqual(base, unpacked)
372 self.assertEqual(bigpacked, string_reverse(packed))
374 self.assertEqual(base, unpacked)
381 self.assertEqual(big, unpacked)
386 self.assertRaises(OverflowError, struct.pack, ">f", big)
388 def test_1530559(self):
391 self.assertRaises(struct.error, struct.pack, format, 1.0)
392 self.assertRaises(struct.error, struct.pack, format, 1.5)
393 self.assertRaises(struct.error, struct.pack, 'P', 1.0)
394 self.assertRaises(struct.error, struct.pack, 'P', 1.5)
396 def test_unpack_from(self):
402 self.assertEqual(s.unpack_from(data), (b'abcd',))
403 self.assertEqual(s.unpack_from(data, 2), (b'cd01',))
404 self.assertEqual(s.unpack_from(data, 4), (b'0123',))
406 self.assertEqual(s.unpack_from(data, i), (data[i:i+4],))
408 self.assertRaises(struct.error, s.unpack_from, data, i)
411 self.assertEqual(struct.unpack_from(fmt, data), (b'abcd',))
412 self.assertEqual(struct.unpack_from(fmt, data, 2), (b'cd01',))
413 self.assertEqual(struct.unpack_from(fmt, data, 4), (b'0123',))
415 self.assertEqual(struct.unpack_from(fmt, data, i), (data[i:i+4],))
417 self.assertRaises(struct.error, struct.unpack_from, fmt, data, i)
420 self.assertEqual(s.unpack_from(buffer=test_string, offset=2),
423 def test_pack_into(self):
432 self.assertEqual(from_buf, test_string)
437 self.assertEqual(from_buf, test_string[:10] + test_string)
441 self.assertRaises((ValueError, struct.error), s.pack_into, small_buf, 0,
443 self.assertRaises((ValueError, struct.error), s.pack_into, small_buf, 2,
448 self.assertRaises((TypeError, struct.error), struct.pack_into, b'', sb,
451 def test_pack_into_fn(self):
460 self.assertEqual(from_buf, test_string)
465 self.assertEqual(from_buf, test_string[:10] + test_string)
469 self.assertRaises((ValueError, struct.error), pack_into, small_buf, 0,
471 self.assertRaises((ValueError, struct.error), pack_into, small_buf, 2,
474 def test_unpack_with_buffer(self):
480 self.assertEqual(value, 0x12345678)
482 def test_bool(self):
484 def __bool__(self):
498 self.assertEqual(len(true), len(unpackedTrue))
499 self.assertEqual(len(false), len(unpackedFalse))
502 self.assertFalse(t)
504 self.assertTrue(t)
508 self.assertEqual(len(packed), struct.calcsize(prefix+'?'))
511 self.assertFalse(prefix, msg='encoded bool is not one byte: %r'
519 self.fail("Expected OSError: struct.pack(%r, "
523 self.assertTrue(struct.unpack('>?', c)[0])
525 def test_count_overflow(self):
527 self.assertRaises(struct.error, struct.calcsize, hugecount)
530 self.assertRaises(struct.error, struct.calcsize, hugecount2)
532 def test_trailing_counter(self):
536 self.assertRaises(struct.error, struct.pack, '12345')
537 self.assertRaises(struct.error, struct.unpack, '12345', b'')
538 self.assertRaises(struct.error, struct.pack_into, '12345', store, 0)
539 self.assertRaises(struct.error, struct.unpack_from, '12345', store, 0)
542 self.assertRaises(struct.error, struct.pack, 'c12345', 'x')
543 self.assertRaises(struct.error, struct.unpack, 'c12345', b'x')
544 self.assertRaises(struct.error, struct.pack_into, 'c12345', store, 0,
546 self.assertRaises(struct.error, struct.unpack_from, 'c12345', store,
550 self.assertRaises(struct.error, struct.pack, '14s42', 'spam and eggs')
551 self.assertRaises(struct.error, struct.unpack, '14s42',
553 self.assertRaises(struct.error, struct.pack_into, '14s42', store, 0,
555 self.assertRaises(struct.error, struct.unpack_from, '14s42', store, 0)
557 def test_Struct_reinitialization(self):
564 def check_sizeof(self, format_str, number_of_codes):
569 support.check_sizeof(self, struct.Struct(format_str), totalsize)
572 def test__sizeof__(self):
574 self.check_sizeof(code, 1)
575 self.check_sizeof('BHILfdspP', 9)
576 self.check_sizeof('B' * 1234, 1234)
577 self.check_sizeof('fd', 2)
578 self.check_sizeof('xxxxxxxxxxxxxx', 0)
579 self.check_sizeof('100H', 1)
580 self.check_sizeof('187s', 1)
581 self.check_sizeof('20p', 1)
582 self.check_sizeof('0s', 1)
583 self.check_sizeof('0c', 0)
585 def test_boundary_error_message(self):
591 with self.assertRaisesRegex(struct.error, regex1):
599 with self.assertRaisesRegex(struct.error, regex2):
602 def test_boundary_error_message_with_negative_offset(self):
604 with self.assertRaisesRegex(
609 with self.assertRaisesRegex(
614 with self.assertRaisesRegex(
619 with self.assertRaisesRegex(
624 def test_boundary_error_message_with_large_offset(self):
631 with self.assertRaisesRegex(struct.error, regex1):
639 with self.assertRaisesRegex(struct.error, regex2):
642 def test_issue29802(self):
646 with self.assertRaises(TypeError):
649 self.assertEqual(struct.unpack('b', b'a'), (b'a'[0],))
651 def test_format_attr(self):
653 self.assertEqual(s.format, '=i2H')
657 self.assertEqual(s2.format, s.format)
659 def test_struct_cleans_up_at_runtime_shutdown(self):
664 def __init__(self):
665 self.pack = struct.pack
666 def __del__(self):
667 self.pack('I', -42)
672 self.assertEqual(rc, 0)
673 self.assertEqual(stdout.rstrip(), b"")
674 self.assertIn(b"Exception ignored in:", stderr)
675 self.assertIn(b"C.__del__", stderr)
677 def test__struct_reference_cycle_cleaned_up(self):
689 self.assertIsNone(
693 def test__struct_types_immutable(self):
699 with self.subTest(cls=cls):
700 with self.assertRaises(TypeError):
704 def test_issue35714(self):
707 with self.assertRaisesRegex(struct.error,
712 def test_issue45034_unsigned(self):
715 with self.assertRaisesRegex(struct.error, error_msg):
717 with self.assertRaisesRegex(struct.error, error_msg):
721 def test_issue45034_signed(self):
724 with self.assertRaisesRegex(struct.error, error_msg):
726 with self.assertRaisesRegex(struct.error, error_msg):
735 def test_construct(self):
737 self.assertIsInstance(it, abc.Iterator)
738 self.assertIsInstance(it, abc.Iterable)
745 with self.assertRaises(struct.error):
747 with self.assertRaises(struct.error):
751 with self.assertRaises(struct.error):
753 with self.assertRaises(struct.error):
756 def test_uninstantiable(self):
758 self.assertRaises(TypeError, iter_unpack_type)
760 def test_iterate(self):
764 self.assertEqual(next(it), (0x01020304, 5))
765 self.assertEqual(next(it), (0x06070809, 10))
766 self.assertEqual(next(it), (0x0b0c0d0e, 15))
767 self.assertRaises(StopIteration, next, it)
768 self.assertRaises(StopIteration, next, it)
770 def test_arbitrary_buffer(self):
774 self.assertEqual(next(it), (0x01020304, 5))
775 self.assertEqual(next(it), (0x06070809, 10))
776 self.assertRaises(StopIteration, next, it)
777 self.assertRaises(StopIteration, next, it)
779 def test_length_hint(self):
784 self.assertEqual(lh(it), 3)
786 self.assertEqual(lh(it), 2)
788 self.assertEqual(lh(it), 1)
790 self.assertEqual(lh(it), 0)
791 self.assertRaises(StopIteration, next, it)
792 self.assertEqual(lh(it), 0)
794 def test_module_func(self):
797 self.assertEqual(next(it), (0x01020304, 5))
798 self.assertEqual(next(it), (0x06070809, 10))
799 self.assertRaises(StopIteration, next, it)
800 self.assertRaises(StopIteration, next, it)
802 def test_half_float(self):
820 self.assertEqual(f, struct.unpack('<e', le_bits)[0])
821 self.assertEqual(le_bits, struct.pack('<e', f))
822 self.assertEqual(f, struct.unpack('>e', be_bits)[0])
823 self.assertEqual(be_bits, struct.pack('>e', f))
825 self.assertEqual(f, struct.unpack('e', le_bits)[0])
826 self.assertEqual(le_bits, struct.pack('e', f))
828 self.assertEqual(f, struct.unpack('e', be_bits)[0])
829 self.assertEqual(be_bits, struct.pack('e', f))
842 self.assertTrue(math.isnan(struct.unpack('<e', bits)[0]))
843 self.assertTrue(math.isnan(struct.unpack('>e', bits[::-1])[0]))
848 self.assertEqual(packed[1] & 0x7e, 0x7e)
850 self.assertEqual(packed[1] & 0x7e, 0x7e)
876 self.assertEqual(bits, struct.pack(formatcode, f))
896 self.assertRaises(OverflowError, struct.pack, formatcode, f)
904 self.assertEqual(bits, struct.pack(formatcode, f))