~ubuntu-branches/ubuntu/karmic/python3.0/karmic

« back to all changes in this revision

Viewing changes to Lib/test/test_bytes.py

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2009-02-16 17:18:23 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20090216171823-1d5cm5qnnjvmnzzm
Tags: 3.0.1-0ubuntu1
New upstream version.

Show diffs side-by-side

added added

removed removed

Lines of Context:
769
769
        self.assertEqual(b, b"")
770
770
        self.assertEqual(c, b"")
771
771
 
 
772
    def test_resize_forbidden(self):
 
773
        # #4509: can't resize a bytearray when there are buffer exports, even
 
774
        # if it wouldn't reallocate the underlying buffer.
 
775
        # Furthermore, no destructive changes to the buffer may be applied
 
776
        # before raising the error.
 
777
        b = bytearray(range(10))
 
778
        v = memoryview(b)
 
779
        def resize(n):
 
780
            b[1:-1] = range(n + 1, 2*n - 1)
 
781
        resize(10)
 
782
        orig = b[:]
 
783
        self.assertRaises(BufferError, resize, 11)
 
784
        self.assertEquals(b, orig)
 
785
        self.assertRaises(BufferError, resize, 9)
 
786
        self.assertEquals(b, orig)
 
787
        self.assertRaises(BufferError, resize, 0)
 
788
        self.assertEquals(b, orig)
 
789
        # Other operations implying resize
 
790
        self.assertRaises(BufferError, b.pop, 0)
 
791
        self.assertEquals(b, orig)
 
792
        self.assertRaises(BufferError, b.remove, b[1])
 
793
        self.assertEquals(b, orig)
 
794
        def delitem():
 
795
            del b[1]
 
796
        self.assertRaises(BufferError, delitem)
 
797
        self.assertEquals(b, orig)
 
798
        # deleting a non-contiguous slice
 
799
        def delslice():
 
800
            b[1:-1:2] = b""
 
801
        self.assertRaises(BufferError, delslice)
 
802
        self.assertEquals(b, orig)
772
803
 
773
804
class AssortedBytesTest(unittest.TestCase):
774
805
    #
857
888
 
858
889
    def test_translate(self):
859
890
        b = b'hello'
 
891
        ba = bytearray(b)
860
892
        rosetta = bytearray(range(0, 256))
861
893
        rosetta[ord('o')] = ord('e')
862
894
        c = b.translate(rosetta, b'l')
863
895
        self.assertEqual(b, b'hello')
864
896
        self.assertEqual(c, b'hee')
 
897
        c = ba.translate(rosetta, b'l')
 
898
        self.assertEqual(ba, b'hello')
 
899
        self.assertEqual(c, b'hee')
 
900
        c = b.translate(None, b'e')
 
901
        self.assertEqual(c, b'hllo')
 
902
        self.assertRaises(TypeError, b.translate, b'a'*256, None)
 
903
        self.assertRaises(TypeError, ba.translate, b'a'*256, None)
865
904
 
866
905
    def test_split_bytearray(self):
867
906
        self.assertEqual(b'a b'.split(memoryview(b' ')), [b'a', b'b'])