Пример #1
0
    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"
            )
Пример #2
0
    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")