~dmedia/degu/trunk

« back to all changes in this revision

Viewing changes to degu/tests/test_base.py

  • Committer: Jason Gerard DeRose
  • Date: 2020-01-25 03:25:01 UTC
  • mfrom: (480.1.13 range-api)
  • Revision ID: jasonderose@gmail.com-20200125032501-2dxwxu64h42jj1pl
Add Range.content_length(), Range.content_range() methods

Show diffs side-by-side

added added

removed removed

Lines of Context:
404
404
    def Request(self):
405
405
        return self.getattr('Request')
406
406
 
 
407
    @property
 
408
    def Range(self):
 
409
        return self.getattr('Range')
 
410
 
 
411
    @property
 
412
    def ContentRange(self):
 
413
        return self.getattr('ContentRange')
 
414
 
407
415
    def mkreq(self, uri, headers=None, body=None, shift=0):
408
416
        return mkreq(uri, headers, body, shift, cls=self.Request)
409
417
 
702
710
 
703
711
 
704
712
class TestRange_Py(BackendTestCase):
705
 
    @property
706
 
    def Range(self):
707
 
        return self.getattr('Range')
708
 
 
709
713
    def test_init(self):
710
714
        self.check_init_args(self.Range, 2, 'stop')
711
715
 
955
959
                    t != o
956
960
                self.assertEqual(str(cm.exception), msg)
957
961
 
 
962
    def test_content_length(self):
 
963
        r = self.Range(7, 10)
 
964
        with self.assertRaises(ValueError) as cm:
 
965
            r.content_length(MAX_LENGTH + 1)
 
966
        self.assertEqual(str(cm.exception),
 
967
            'need 0 <= total <= {}; got {}'.format(MAX_LENGTH, MAX_LENGTH + 1)
 
968
        )
 
969
        self.assertEqual(r.content_length(MAX_LENGTH), 3)
 
970
        self.assertEqual(r.content_length(11), 3)
 
971
        self.assertEqual(r.content_length(10), 3)
 
972
        self.assertEqual(r.content_length(9), 2)
 
973
        self.assertEqual(r.content_length(8), 1)
 
974
        with self.assertRaises(ValueError) as cm:
 
975
            r.content_length(7)
 
976
        self.assertEqual(str(cm.exception),
 
977
            'Range(7, 10) out of bounds (total=7)'
 
978
        )
 
979
        with self.assertRaises(ValueError) as cm:
 
980
            r.content_length(0)
 
981
        self.assertEqual(str(cm.exception),
 
982
            'Range(7, 10) out of bounds (total=0)'
 
983
        )
 
984
        with self.assertRaises(ValueError) as cm:
 
985
            r.content_length(-1)
 
986
        self.assertEqual(str(cm.exception),
 
987
            'need 0 <= total <= {}; got -1'.format(MAX_LENGTH)
 
988
        )
 
989
 
 
990
    def test_content_range(self):
 
991
        r = self.Range(7, 10)
 
992
        with self.assertRaises(ValueError) as cm:
 
993
            r.content_range(MAX_LENGTH + 1)
 
994
        self.assertEqual(str(cm.exception),
 
995
            'need 0 <= total <= {}; got {}'.format(MAX_LENGTH, MAX_LENGTH + 1)
 
996
        )
 
997
        self.assertEqual(r.content_range(MAX_LENGTH),
 
998
            self.ContentRange(7, 10, MAX_LENGTH)
 
999
        )
 
1000
        self.assertEqual(r.content_range(11), self.ContentRange(7, 10, 11))
 
1001
        self.assertEqual(r.content_range(10), self.ContentRange(7, 10, 10))
 
1002
        self.assertEqual(r.content_range(9), self.ContentRange(7, 9, 9))
 
1003
        self.assertEqual(r.content_range(8), self.ContentRange(7, 8, 8))
 
1004
        with self.assertRaises(ValueError) as cm:
 
1005
            r.content_range(7)
 
1006
        self.assertEqual(str(cm.exception),
 
1007
            'Range(7, 10) out of bounds (total=7)'
 
1008
        )
 
1009
        with self.assertRaises(ValueError) as cm:
 
1010
            r.content_range(0)
 
1011
        self.assertEqual(str(cm.exception),
 
1012
            'Range(7, 10) out of bounds (total=0)'
 
1013
        )
 
1014
        with self.assertRaises(ValueError) as cm:
 
1015
            r.content_range(-1)
 
1016
        self.assertEqual(str(cm.exception),
 
1017
            'need 0 <= total <= {}; got -1'.format(MAX_LENGTH)
 
1018
        )
958
1019
 
959
1020
class TestRange_C(TestRange_Py):
960
1021
    backend = _base
961
1022
 
962
1023
 
963
1024
class TestContentRange_Py(BackendTestCase):
964
 
    @property
965
 
    def ContentRange(self):
966
 
        return self.getattr('ContentRange')
967
 
 
968
1025
    def test_init(self):
969
1026
        self.check_init_args(self.ContentRange, 3, 'total')
970
1027