Exemplo n.º 1
0
 def clean_folder(self, options):
     from nxdrive.client.local_client import LocalClient
     if options.local_folder is None:
         print('A folder must be specified')
         return 0
     client = LocalClient(unicode(options.local_folder))
     client.clean_xattr_root()
     return 0
Exemplo n.º 2
0
def test_get_path(tmp):
    folder = tmp()
    folder.mkdir()
    local = LocalClient(folder)
    path = folder / "foo.txt"
    path_upper = folder / "FOO.TXT"

    # The path does not exist, it returns ROOT
    assert local.get_path(pathlib.Path("bar.doc")) == ROOT

    # The path exists, it returns
    assert local.get_path(path) == pathlib.Path("foo.txt")
    assert local.get_path(path_upper) == pathlib.Path("FOO.TXT")
Exemplo n.º 3
0
def test_get_path_permission_error(mocked_resolve, mocked_absolute, tmp):
    folder = tmp()
    folder.mkdir()
    local = LocalClient(folder)
    path = folder / "foo.txt"

    # Path.resolve() raises a PermissionError, it should fallback on .absolute()
    mocked_resolve.side_effect = PermissionError()
    path_abs = local.get_path(path)
    assert mocked_absolute.called

    # Restore the original ehavior and check that .resolved() and .absolute()
    # return the same value.
    mocked_resolve.reset_mock()
    assert local.get_path(path) == path_abs
Exemplo n.º 4
0
 def __init__(self, manager, folder, url):
     super(DirectEdit, self).__init__()
     self._test = False
     self._manager = manager
     self._url = url
     self._thread.started.connect(self.run)
     self._event_handler = None
     self._metrics = dict()
     self._metrics['edit_files'] = 0
     self._observer = None
     if isinstance(folder, bytes):
         folder = unicode(folder)
     self._folder = folder
     self._local_client = LocalClient(self._folder)
     self._upload_queue = Queue()
     self._lock_queue = Queue()
     self._error_queue = BlacklistQueue()
     self._stop = False
     self._manager.get_autolock_service().orphanLocks.connect(
         self._autolock_orphans)
     self._last_action_timing = -1