self.assertEqual(report[0][2], 8193)
self.assertEqual(report[0][1], 8192)
self.assertEqual(report[1][1], 8192)
- self.assertEqual(report[2][1], 8192)
+ self.assertEqual(report[2][1], 1) # last block only reads 1 byte
class urlretrieve_HttpTests(unittest.TestCase, FakeHTTPMixin):
self.assertEqual(records[0][2], expected_size)
self.assertEqual(records[-1][2], expected_size)
- block_sizes = {block_size for _, block_size, _ in records}
- self.assertEqual({records[0][1]}, block_sizes,
- msg="block sizes in %s must be equal" % records_repr)
- self.assertGreaterEqual(records[-1][0]*records[0][1], expected_size,
- msg="number of blocks * block size must be"
- " >= total size in %s" % records_repr)
+ self.assertEqual(records[0][1], 8192,
+ msg="first block size should be 8192 in %s" % records_repr)
+ for block_num, block_size, total_size in records:
+ self.assertLessEqual(block_size, 8192,
+ msg="block size should be <= 8192 in %s" % records_repr)
+ total_read = sum(block_size for _, block_size, _ in records[1:])
+ self.assertEqual(total_read, expected_size,
+ msg="sum of bytes read must equal total size in %s" % records_repr)
if __name__ == "__main__":
tfp.write(block)
blocknum += 1
if reporthook:
- reporthook(blocknum, bs, size)
+ reporthook(blocknum, len(block), size)
if size >= 0 and read < size:
raise ContentTooShortError(