Exemplo n.º 1
0
    def test_super_len_tell_ioerror(self, error):
        """Ensure that if tell gives an IOError super_len doesn't fail"""
        class NoLenBoomFile(object):
            def tell(self):
                raise error()

            def seek(self, offset, whence):
                pass

        assert super_len(NoLenBoomFile()) == 0
Exemplo n.º 2
0
    def test_super_len_handles_files_raising_weird_errors_in_tell(self, error):
        """If tell() raises errors, assume the cursor is at position zero."""
        class BoomFile(object):
            def __len__(self):
                return 5

            def tell(self):
                raise error()

        assert super_len(BoomFile()) == 0
Exemplo n.º 3
0
 def test_io_streams(self, stream, value):
     """Ensures that we properly deal with different kinds of IO streams."""
     assert super_len(stream()) == 0
     assert super_len(stream(value)) == 4
Exemplo n.º 4
0
 def test_super_len_with_no_matches(self):
     """Ensure that objects without any length methods default to 0"""
     assert super_len(object()) == 0
Exemplo n.º 5
0
 def test_super_len_with_fileno(self):
     with open(__file__, 'rb') as f:
         length = super_len(f)
         file_data = f.read()
     assert length == len(file_data)
Exemplo n.º 6
0
 def test_super_len_with_tell(self):
     foo = StringIO('12345')
     assert super_len(foo) == 5
     foo.read(2)
     assert super_len(foo) == 3
Exemplo n.º 7
0
    def test_super_len_with_no__len__(self):
        class LenFile(object):
            def __init__(self):
                self.len = 5

        assert super_len(LenFile()) == 5
Exemplo n.º 8
0
 def test_super_len_with__len__(self):
     foo = [1, 2, 3, 4]
     len_foo = super_len(foo)
     assert len_foo == 4
Exemplo n.º 9
0
 def test_file(self, tmpdir, mode, warnings_num, recwarn):
     file_obj = tmpdir.join('test.txt')
     file_obj.write('Test')
     with file_obj.open(mode) as fd:
         assert super_len(fd) == 4
     assert len(recwarn) == warnings_num
Exemplo n.º 10
0
 def test_string(self):
     assert super_len('Test') == 4
Exemplo n.º 11
0
 def test_super_len_correctly_calculates_len_of_partially_read_file(self):
     """Ensure that we handle partially consumed file like objects."""
     s = StringIO()
     s.write('foobarbogus')
     assert super_len(s) == 0