diff options
Diffstat (limited to 'custodia')
-rw-r--r-- | custodia/secrets.py | 9 | ||||
-rw-r--r-- | custodia/store/sqlite.py | 25 |
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') |