summaryrefslogtreecommitdiffstats
path: root/custodia
diff options
context:
space:
mode:
Diffstat (limited to 'custodia')
-rw-r--r--custodia/secrets.py9
-rw-r--r--custodia/store/sqlite.py25
2 files changed, 19 insertions, 15 deletions
diff --git a/custodia/secrets.py b/custodia/secrets.py
index cfeaa0a..9e57a49 100644
--- a/custodia/secrets.py
+++ b/custodia/secrets.py
@@ -86,8 +86,7 @@ class Secrets(HTTPConsumer):
exists = False
break
except CSStoreError:
- exists = False
- break
+ raise HTTPError(500)
# create if default namespace needs creating
if not exists and l == 2 and n == 1 and default == trail[0]:
@@ -149,7 +148,7 @@ class Secrets(HTTPConsumer):
output[name] = json.loads(keydict[k])
response['output'] = json.dumps(output)
except CSStoreError:
- raise HTTPError(404)
+ raise HTTPError(500)
def _create(self, trail, request, response):
default = request.get('default_namespace', None)
@@ -182,7 +181,7 @@ class Secrets(HTTPConsumer):
print((basename, keys))
ret = self.root.store.cut(basename)
except CSStoreError:
- ret = False
+ raise HTTPError(500)
if ret is False:
raise HTTPError(404)
@@ -237,7 +236,7 @@ class Secrets(HTTPConsumer):
try:
ret = self.root.store.cut(key)
except CSStoreError:
- ret = False
+ raise HTTPError(500)
if ret is False:
raise HTTPError(404)
diff --git a/custodia/store/sqlite.py b/custodia/store/sqlite.py
index f321678..5308674 100644
--- a/custodia/store/sqlite.py
+++ b/custodia/store/sqlite.py
@@ -22,6 +22,17 @@ class SqliteStore(CSStore):
else:
self.table = "CustodiaSecrets"
+ # Initialize the DB by trying to create the default table
+ try:
+ conn = sqlite3.connect(self.dburi)
+ with conn:
+ c = conn.cursor()
+ self._create(c)
+ except sqlite3.Error as err:
+ log_error("Error creating table %s: [%r]" % (self.table,
+ repr(err)))
+ raise CSStoreError('Error occurred while trying to init db')
+
def get(self, key):
query = "SELECT value from %s WHERE key=?" % self.table
try:
@@ -110,18 +121,12 @@ class SqliteStoreTests(unittest.TestCase):
pass
def test_0_get_empty(self):
- with self.assertRaises(CSStoreError) as err:
- self.store.get('test')
-
- self.assertEqual(str(err.exception),
- 'Error occurred while trying to get key')
+ value = self.store.get('test')
+ self.assertEqual(value, None)
def test_1_list_empty(self):
- with self.assertRaises(CSStoreError) as err:
- self.store.list('test')
-
- self.assertEqual(str(err.exception),
- 'Error occurred while trying to list keys')
+ value = self.store.list('test')
+ self.assertEqual(value, None)
def test_2_set_key(self):
self.store.set('key', 'value')