diff options
| author | Simo Sorce <simo@redhat.com> | 2015-04-07 17:33:28 -0400 |
|---|---|---|
| committer | Simo Sorce <simo@redhat.com> | 2015-04-07 18:48:31 -0400 |
| commit | e35d48dbb2362fe06f62e19c2594ef1fdfc4c8c5 (patch) | |
| tree | cc9fee894edaa9633d900839dee1172c1932e8b6 /custodia/store/sqlite.py | |
| parent | 5ed4b17854977c38944b8670b2264b2a9d8c2121 (diff) | |
| download | custodia-e35d48dbb2362fe06f62e19c2594ef1fdfc4c8c5.tar.gz custodia-e35d48dbb2362fe06f62e19c2594ef1fdfc4c8c5.tar.xz custodia-e35d48dbb2362fe06f62e19c2594ef1fdfc4c8c5.zip | |
Add interface to remove data from store
Diffstat (limited to 'custodia/store/sqlite.py')
| -rw-r--r-- | custodia/store/sqlite.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/custodia/store/sqlite.py b/custodia/store/sqlite.py index 0ed8223..481313e 100644 --- a/custodia/store/sqlite.py +++ b/custodia/store/sqlite.py @@ -76,8 +76,24 @@ class SqliteStore(CSStore): else: return None + def cut(self, key): + query = "DELETE from %s WHERE key=?" % self.table + try: + conn = sqlite3.connect(self.dburi) + with conn: + c = conn.cursor() + r = c.execute(query, (key,)) + except sqlite3.Error as err: + log_error("Error removing key %s: [%r]" % (key, repr(err))) + raise CSStoreError('Error occurred while trying to cut key') + if r.rowcount > 0: + return True + return False + import unittest + + class SqliteStoreTests(unittest.TestCase): @classmethod @@ -173,3 +189,14 @@ class SqliteStoreTests(unittest.TestCase): value = self.store.get('key') self.assertEqual(value, 'replaced') + + def test_6_cut_1(self): + self.store.set('keycut', 'value') + ret = self.store.cut('keycut') + self.assertEqual(ret, True) + value = self.store.get('keycut') + self.assertEqual(value, None) + + def test_6_cut_2_empty(self): + ret = self.store.cut('keycut') + self.assertEqual(ret, False) |
