rename SiteStorage.list to SiteStorage.walk

also, add SiteStorage.list as non-recursive
directory listing (`os.listdir`)
This commit is contained in:
mishfit 2017-02-24 21:47:38 -07:00
parent 4d3603136f
commit 656c818211
5 changed files with 24 additions and 6 deletions

View file

@ -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:

View file

@ -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

View file

@ -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

View file

@ -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"]

View file

@ -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