def test_range_tuple_to_header(self): """byterange.range_tuple_to_header()""" from urlgrabber.byterange import range_tuple_to_header tests = ( ((500, 600), 'bytes=500-599'), ((500, ''), 'bytes=500-'), ((500, ), 'bytes=500-'), ((None, 500), 'bytes=0-499'), (('', 500), 'bytes=0-499'), (None, None), ) for test, ex in tests: self.assertEquals(range_tuple_to_header(test), ex) try: range_tuple_to_header(('not an int', 500)) except ValueError: pass else: self.fail( "range_tuple_to_header( ('not an int',500) ) should have raised ValueError" ) try: range_tuple_to_header((0, 'not an int')) except ValueError: pass else: self.fail( "range_tuple_to_header( (0, 'not an int') ) should have raised ValueError" )
def _build_range(self, req): self.reget_time = None self.append = 0 reget_length = 0 rt = None if have_range and self.opts.reget and type(self.filename) == type(''): # we have reget turned on and we're dumping to a file try: s = os.stat(self.filename) except OSError: pass else: self.reget_time = s[ST_MTIME] reget_length = s[ST_SIZE] rt = reget_length, '' self.append = 1 if self.opts.range: if not have_range: raise URLGrabError(10, _('Byte range requested but range '\ 'support unavailable')) rt = self.opts.range if rt[0]: rt = (rt[0] + reget_length, rt[1]) if rt: header = range_tuple_to_header(rt) if header: req.add_header('Range', header)
def test_range_tuple_to_header(self): """byterange.range_tuple_to_header()""" from urlgrabber.byterange import range_tuple_to_header tests = ( ((500,600), 'bytes=500-599'), ((500,''), 'bytes=500-'), ((500,), 'bytes=500-'), ((None,500), 'bytes=0-499'), (('',500), 'bytes=0-499'), (None, None), ) for test, ex in tests: self.assertEquals( range_tuple_to_header(test), ex ) try: range_tuple_to_header( ('not an int',500) ) except ValueError: pass else: self.fail("range_tuple_to_header( ('not an int',500) ) should have raised ValueError") try: range_tuple_to_header( (0,'not an int') ) except ValueError: pass else: self.fail("range_tuple_to_header( (0, 'not an int') ) should have raised ValueError")