'Does the given source have both the methods `seek` and `read`?
:raises InvalidDataProviderSource: if not.'

def validate_source(self, source):

    source = super(ChunkDataProvider, self).validate_source(source)
    if ((not hasattr(source, 'seek')) or (not hasattr(source, 'read'))):
        raise exceptions.InvalidDataProviderSource(source)
    return source
