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:
|
||||
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):
|
||||
"""Raises an exception if the request isn't allowed or valid for some reason."""
|
||||
if self.allowed_hosts != '*':
|
||||
@ -234,6 +238,9 @@ class RestApp(object):
|
||||
# make sure the request is valid
|
||||
self._checkRequest(req)
|
||||
|
||||
if req.path == '/list_collections':
|
||||
return Response(json.dumps(self.list_collections()), content_type='application/json')
|
||||
|
||||
# parse the path
|
||||
type, name, ids = self._parsePath(req.path)
|
||||
|
||||
|
||||
@ -33,6 +33,15 @@ class RestAppTest(unittest.TestCase):
|
||||
self.collection_manager = None
|
||||
self.rest_app = None
|
||||
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):
|
||||
tests = [
|
||||
|
||||
Loading…
Reference in New Issue
Block a user