rename SiteStorage.list to SiteStorage.walk
also, add SiteStorage.list as non-recursive directory listing (`os.listdir`)
This commit is contained in:
parent
4d3603136f
commit
656c818211
5 changed files with 24 additions and 6 deletions
|
@ -36,7 +36,7 @@ class UiWebsocketPlugin(object):
|
||||||
if not site:
|
if not site:
|
||||||
continue
|
continue
|
||||||
dir_inner_path = helper.getDirname(row["inner_path"])
|
dir_inner_path = helper.getDirname(row["inner_path"])
|
||||||
for file_name in site.storage.list(dir_inner_path):
|
for file_name in site.storage.walk(dir_inner_path):
|
||||||
if action == "remove":
|
if action == "remove":
|
||||||
site.storage.onUpdated(dir_inner_path + file_name, False)
|
site.storage.onUpdated(dir_inner_path + file_name, False)
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -458,7 +458,7 @@ class ContentManager(object):
|
||||||
ignored = True
|
ignored = True
|
||||||
self.log.error("- [ERROR] Only ascii encoded directories allowed: %s" % dir_inner_path)
|
self.log.error("- [ERROR] Only ascii encoded directories allowed: %s" % dir_inner_path)
|
||||||
|
|
||||||
for file_relative_path in self.site.storage.list(dir_inner_path):
|
for file_relative_path in self.site.storage.walk(dir_inner_path):
|
||||||
file_name = helper.getFilename(file_relative_path)
|
file_name = helper.getFilename(file_relative_path)
|
||||||
|
|
||||||
ignored = optional = False
|
ignored = optional = False
|
||||||
|
|
|
@ -202,7 +202,7 @@ class SiteStorage(object):
|
||||||
raise err
|
raise err
|
||||||
|
|
||||||
# List files from a directory
|
# List files from a directory
|
||||||
def list(self, dir_inner_path):
|
def walk(self, dir_inner_path):
|
||||||
directory = self.getPath(dir_inner_path)
|
directory = self.getPath(dir_inner_path)
|
||||||
for root, dirs, files in os.walk(directory):
|
for root, dirs, files in os.walk(directory):
|
||||||
root = root.replace("\\", "/")
|
root = root.replace("\\", "/")
|
||||||
|
@ -213,6 +213,11 @@ class SiteStorage(object):
|
||||||
else:
|
else:
|
||||||
yield file_name
|
yield file_name
|
||||||
|
|
||||||
|
# list directories in a directory
|
||||||
|
def list(self, dir_inner_path):
|
||||||
|
directory = self.getPath(dir_inner_path)
|
||||||
|
return os.listdir(directory)
|
||||||
|
|
||||||
# Site content updated
|
# Site content updated
|
||||||
def onUpdated(self, inner_path, file=None):
|
def onUpdated(self, inner_path, file=None):
|
||||||
# Update Sql cache
|
# Update Sql cache
|
||||||
|
|
|
@ -3,11 +3,20 @@ import pytest
|
||||||
|
|
||||||
@pytest.mark.usefixtures("resetSettings")
|
@pytest.mark.usefixtures("resetSettings")
|
||||||
class TestSiteStorage:
|
class TestSiteStorage:
|
||||||
|
def testWalk(self, site):
|
||||||
|
# Rootdir
|
||||||
|
walk_root = list(site.storage.walk(""))
|
||||||
|
assert "content.json" in walk_root
|
||||||
|
assert "css/all.css" in walk_root
|
||||||
|
|
||||||
|
# Subdir
|
||||||
|
assert list(site.storage.walk("data-default")) == ["data.json", "users/content-default.json"]
|
||||||
|
|
||||||
def testList(self, site):
|
def testList(self, site):
|
||||||
# Rootdir
|
# Rootdir
|
||||||
list_root = list(site.storage.list(""))
|
list_root = list(site.storage.list(""))
|
||||||
assert "content.json" in list_root
|
assert "content.json" in list_root
|
||||||
assert "css/all.css" in list_root
|
assert "css/all.css" not in list_root
|
||||||
|
|
||||||
# Subdir
|
# Subdir
|
||||||
assert list(site.storage.list("data-default")) == ["data.json", "users/content-default.json"]
|
assert list(site.storage.list("data-default")) == ["data.json", "users"]
|
||||||
|
|
|
@ -37,7 +37,7 @@ class UiWebsocket(object):
|
||||||
"channelJoinAllsite", "serverUpdate", "serverPortcheck", "serverShutdown", "certSet", "configSet",
|
"channelJoinAllsite", "serverUpdate", "serverPortcheck", "serverShutdown", "certSet", "configSet",
|
||||||
"actionPermissionAdd", "actionPermissionRemove"
|
"actionPermissionAdd", "actionPermissionRemove"
|
||||||
)
|
)
|
||||||
self.async_commands = ("fileGet", "fileList")
|
self.async_commands = ("fileGet", "fileList", "dirList")
|
||||||
|
|
||||||
# Start listener loop
|
# Start listener loop
|
||||||
def start(self):
|
def start(self):
|
||||||
|
@ -520,6 +520,10 @@ class UiWebsocket(object):
|
||||||
|
|
||||||
# List files in directory
|
# List files in directory
|
||||||
def actionFileList(self, to, inner_path):
|
def actionFileList(self, to, inner_path):
|
||||||
|
return self.response(to, list(self.site.storage.walk(inner_path)))
|
||||||
|
|
||||||
|
# List directories in a directory
|
||||||
|
def actionDirList(self, to, inner_path):
|
||||||
return self.response(to, list(self.site.storage.list(inner_path)))
|
return self.response(to, list(self.site.storage.list(inner_path)))
|
||||||
|
|
||||||
# Sql query
|
# Sql query
|
||||||
|
|
Loading…
Reference in a new issue