Added a quick way to get a list of all collections.
This commit is contained in:
parent
02ea97f6d9
commit
294afba2ac
@ -120,6 +120,10 @@ class RestApp(object):
|
|||||||
if hasReturnValue:
|
if hasReturnValue:
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
def list_collections(self):
|
||||||
|
"""Returns an array of valid collection names in our self.data_path."""
|
||||||
|
return [x for x in os.listdir(self.data_root) if os.path.exists(os.path.join(self.data_root, x, 'collection.anki2'))]
|
||||||
|
|
||||||
def _checkRequest(self, req):
|
def _checkRequest(self, req):
|
||||||
"""Raises an exception if the request isn't allowed or valid for some reason."""
|
"""Raises an exception if the request isn't allowed or valid for some reason."""
|
||||||
if self.allowed_hosts != '*':
|
if self.allowed_hosts != '*':
|
||||||
@ -234,6 +238,9 @@ class RestApp(object):
|
|||||||
# make sure the request is valid
|
# make sure the request is valid
|
||||||
self._checkRequest(req)
|
self._checkRequest(req)
|
||||||
|
|
||||||
|
if req.path == '/list_collections':
|
||||||
|
return Response(json.dumps(self.list_collections()), content_type='application/json')
|
||||||
|
|
||||||
# parse the path
|
# parse the path
|
||||||
type, name, ids = self._parsePath(req.path)
|
type, name, ids = self._parsePath(req.path)
|
||||||
|
|
||||||
|
|||||||
@ -33,6 +33,15 @@ class RestAppTest(unittest.TestCase):
|
|||||||
self.collection_manager = None
|
self.collection_manager = None
|
||||||
self.rest_app = None
|
self.rest_app = None
|
||||||
shutil.rmtree(self.temp_dir)
|
shutil.rmtree(self.temp_dir)
|
||||||
|
|
||||||
|
def test_list_collections(self):
|
||||||
|
os.mkdir(os.path.join(self.temp_dir, 'test1'))
|
||||||
|
os.mkdir(os.path.join(self.temp_dir, 'test2'))
|
||||||
|
|
||||||
|
with open(os.path.join(self.temp_dir, 'test1', 'collection.anki2'), 'wt') as fd:
|
||||||
|
fd.write('Testing!')
|
||||||
|
|
||||||
|
self.assertEqual(self.rest_app.list_collections(), ['test1'])
|
||||||
|
|
||||||
def test_parsePath(self):
|
def test_parsePath(self):
|
||||||
tests = [
|
tests = [
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user