/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/tests/test_http.py

  • Committer: Martin
  • Date: 2017-11-12 13:53:51 UTC
  • mto: This revision was merged to the branch mainline in revision 6810.
  • Revision ID: gzlist@googlemail.com-20171112135351-uyr1ncw7visg62c2
Apply 2to3 ws_comma fixer

Show diffs side-by-side

added added

removed removed

Lines of Context:
286
286
                          self.req_handler._parse_ranges(header, file_size))
287
287
 
288
288
    def test_simple_range(self):
289
 
        self.assertRanges([(0,2)], 'bytes=0-2', 12)
 
289
        self.assertRanges([(0, 2)], 'bytes=0-2', 12)
290
290
 
291
291
    def test_tail(self):
292
292
        self.assertRanges([(8, 11)], 'bytes=-4', 12)
513
513
        self.assertEqual(value, range_header(coalesced, tail))
514
514
 
515
515
    def test_range_header_single(self):
516
 
        self.check_header('0-9', ranges=[(0,9)])
517
 
        self.check_header('100-109', ranges=[(100,109)])
 
516
        self.check_header('0-9', ranges=[(0, 9)])
 
517
        self.check_header('100-109', ranges=[(100, 109)])
518
518
 
519
519
    def test_range_header_tail(self):
520
520
        self.check_header('-10', tail=10)
522
522
 
523
523
    def test_range_header_multi(self):
524
524
        self.check_header('0-9,100-200,300-5000',
525
 
                          ranges=[(0,9), (100, 200), (300,5000)])
 
525
                          ranges=[(0, 9), (100, 200), (300, 5000)])
526
526
 
527
527
    def test_range_header_mixed(self):
528
528
        self.check_header('0-9,300-5000,-50',
529
 
                          ranges=[(0,9), (300,5000)],
 
529
                          ranges=[(0, 9), (300, 5000)],
530
530
                          tail=50)
531
531
 
532
532
 
759
759
        # This is intentionally reading off the end of the file
760
760
        # since we are sure that it cannot get there
761
761
        self.assertListRaises((errors.InvalidRange, errors.ShortReadvError,),
762
 
                              t.readv, 'a', [(1,1), (8,10)])
 
762
                              t.readv, 'a', [(1, 1), (8, 10)])
763
763
 
764
764
        # This is trying to seek past the end of the file, it should
765
765
        # also raise a special error
766
766
        self.assertListRaises((errors.InvalidRange, errors.ShortReadvError,),
767
 
                              t.readv, 'a', [(12,2)])
 
767
                              t.readv, 'a', [(12, 2)])
768
768
 
769
769
    def test_readv_multiple_get_requests(self):
770
770
        server = self.get_readonly_server()
885
885
        self.send_header('Accept-Ranges', 'bytes')
886
886
        # XXX: this is strange; the 'random' name below seems undefined and
887
887
        # yet the tests pass -- mbp 2010-10-11 bug 658773
888
 
        boundary = "%d" % random.randint(0,0x7FFFFFFF)
 
888
        boundary = "%d" % random.randint(0, 0x7FFFFFFF)
889
889
        self.send_header("Content-Type",
890
890
                         "multipart/byteranges; boundary=%s" % boundary)
891
891
        self.end_headers()
1271
1271
        coalesce = t._coalesce_offsets
1272
1272
        coalesced = list(coalesce(offsets, limit=0, fudge_factor=0))
1273
1273
        code, data = t._get(relpath, coalesced)
1274
 
        self.assertTrue(code in (200, 206),'_get returns: %d' % code)
 
1274
        self.assertTrue(code in (200, 206), '_get returns: %d' % code)
1275
1275
        for start, end in ranges:
1276
1276
            data.seek(start)
1277
1277
            yield data.read(end - start + 1)
1279
1279
    def _file_tail(self, relpath, tail_amount):
1280
1280
        t = self.get_readonly_transport()
1281
1281
        code, data = t._get(relpath, [], tail_amount)
1282
 
        self.assertTrue(code in (200, 206),'_get returns: %d' % code)
 
1282
        self.assertTrue(code in (200, 206), '_get returns: %d' % code)
1283
1283
        data.seek(-tail_amount, 2)
1284
1284
        return data.read(tail_amount)
1285
1285
 
1286
1286
    def test_range_header(self):
1287
1287
        # Valid ranges
1288
1288
        self.assertEqual(
1289
 
            ['0', '234'], list(self._file_contents('a', [(0,0), (2,4)])))
 
1289
            ['0', '234'], list(self._file_contents('a', [(0, 0), (2, 4)])))
1290
1290
 
1291
1291
    def test_range_header_tail(self):
1292
1292
        self.assertEqual('789', self._file_tail('a', 3))
1380
1380
        super(TestHTTPSilentRedirections, self).setUp()
1381
1381
        install_redirected_request(self)
1382
1382
        cleanup_http_redirection_connections(self)
1383
 
        self.build_tree_contents([('a','a'),
 
1383
        self.build_tree_contents([('a', 'a'),
1384
1384
                                  ('1/',),
1385
1385
                                  ('1/a', 'redirected once'),
1386
1386
                                  ('2/',),
1579
1579
        t = self.get_user_transport(None, None)
1580
1580
        ui.ui_factory = tests.TestUIFactory(stdin='joe\nfoo\n')
1581
1581
        stdout, stderr = ui.ui_factory.stdout, ui.ui_factory.stderr
1582
 
        self.assertEqual('contents of a\n',t.get('a').read())
 
1582
        self.assertEqual('contents of a\n', t.get('a').read())
1583
1583
        # stdin should be empty
1584
1584
        self.assertEqual('', ui.ui_factory.stdin.readline())
1585
1585
        stderr.seek(0)
1602
1602
        self.assertEqual('', stdout.getvalue())
1603
1603
        # And we shouldn't prompt again for a different request
1604
1604
        # against the same transport.
1605
 
        self.assertEqual('contents of b\n',t.get('b').read())
 
1605
        self.assertEqual('contents of b\n', t.get('b').read())
1606
1606
        t2 = t.clone()
1607
1607
        # And neither against a clone
1608
 
        self.assertEqual('contents of b\n',t2.get('b').read())
 
1608
        self.assertEqual('contents of b\n', t2.get('b').read())
1609
1609
        # Only one 'Authentication Required' error should occur
1610
1610
        self.assertEqual(1, self.server.auth_required_errors)
1611
1611
 
1634
1634
        _setup_authentication_config(scheme='http', port=self.server.port,
1635
1635
                                     user=user, password=password)
1636
1636
        # Issue a request to the server to connect
1637
 
        self.assertEqual('contents of a\n',t.get('a').read())
 
1637
        self.assertEqual('contents of a\n', t.get('a').read())
1638
1638
        # stdin should have  been left untouched
1639
1639
        self.assertEqual(stdin_content, ui.ui_factory.stdin.readline())
1640
1640
        # Only one 'Authentication Required' error should occur
1792
1792
        remote_transport = remote.RemoteTransport('bzr://fake_host/',
1793
1793
                                                  medium=medium)
1794
1794
        self.assertEqual(
1795
 
            [(0, "c")], list(remote_transport.readv("data-file", [(0,1)])))
 
1795
            [(0, "c")], list(remote_transport.readv("data-file", [(0, 1)])))
1796
1796
 
1797
1797
    def test_http_send_smart_request(self):
1798
1798
 
2163
2163
 
2164
2164
    def setUp(self):
2165
2165
        super(TestAuthOnRedirected, self).setUp()
2166
 
        self.build_tree_contents([('a','a'),
 
2166
        self.build_tree_contents([('a', 'a'),
2167
2167
                                  ('1/',),
2168
2168
                                  ('1/a', 'redirected once'),
2169
2169
                                  ],)