Found and fixed some more sneaky Python3 str->bytes problems

parent 2f0138a2
......@@ -39,7 +39,7 @@ from fs.local_functools import wraps
import compatibility
import six
from six import PY3
from six import PY3, b
class DummyLock(object):
"""A dummy lock object that doesn't do anything.
......@@ -112,13 +112,13 @@ class NullFile(object):
raise StopIteration
def readline(self, *args, **kwargs):
return ""
return b("")
def close(self):
self.closed = True
def read(self, size=None):
return ""
return b("")
def seek(self, *args, **kwargs):
pass
......
......@@ -667,7 +667,7 @@ class _FTPFile(object):
break
chunks.append(data)
self.read_pos += len(data)
return ''.join(chunks)
return b('').join(chunks)
remaining_bytes = size
while remaining_bytes:
......
......@@ -21,6 +21,7 @@ from os import SEEK_END
import threading
import six
from six import b
def _check_mode(mode, mode_chars):
......@@ -574,7 +575,7 @@ class MemoryFS(FS):
if dir_entry.isdir():
info['st_mode'] = 0755 | stat.S_IFDIR
else:
info['size'] = len(dir_entry.data or '')
info['size'] = len(dir_entry.data or b(''))
info['st_mode'] = 0666 | stat.S_IFREG
return info
......@@ -630,7 +631,7 @@ class MemoryFS(FS):
raise ResourceNotFoundError(path)
if not dir_entry.isfile():
raise ResourceInvalidError(path, msg="not a file: %(path)s")
return dir_entry.data or ''
return dir_entry.data or b('')
@synchronize
def setcontents(self, path, data, chunk_size=1024*64):
......
......@@ -10,6 +10,9 @@ from json import dumps
import Queue as queue
import socket
from six import b
class PacketHandler(threading.Thread):
def __init__(self, transport, prelude_callback=None):
......@@ -99,7 +102,7 @@ class _SocketFile(object):
try:
return self.socket.recv(size)
except:
return ''
return b('')
def write(self, data):
self.socket.sendall(data)
......@@ -145,7 +148,7 @@ class RemoteFS(FS):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((self.addr, self.port))
socket_file = _SocketFile(sock)
socket_file.write('pyfs/0.1\n')
socket_file.write(b('pyfs/0.1\n'))
return socket_file
def _make_call(self, method_name, *args, **kwargs):
......@@ -185,4 +188,4 @@ if __name__ == "__main__":
rfs = RemoteFS()
rfs.close()
\ No newline at end of file
......@@ -41,6 +41,8 @@ from fs.wrapfs import WrapFS
from fs.base import FS
from fs.filelike import FileWrapper
from six import b
class EVENT(object):
"""Base class for change notification events."""
......@@ -304,7 +306,7 @@ class WatchableFS(WatchableFSMixin,WrapFS):
self.notify_watchers(ACCESSED,path)
return WatchedFile(f,self,path,mode)
def setcontents(self, path, data='', chunk_size=64*1024):
def setcontents(self, path, data=b(''), chunk_size=64*1024):
existed = self.wrapped_fs.isfile(path)
ret = super(WatchableFS, self).setcontents(path, data, chunk_size=chunk_size)
if not existed:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment