1
0
Fork 0

storage: add unset() method

This commit is contained in:
Jan Vcelak 2012-05-21 16:39:50 +02:00
parent 0830f7d08e
commit 38a784a0a2
4 changed files with 16 additions and 0 deletions

View file

@ -69,6 +69,11 @@ class StoragePickleProviderTestCase(unittest.TestCase):
self.assertEqual("value2", provider.get("ns1", "opt2"))
self.assertEqual("value3", provider.get("ns2", "opt1"))
provider.unset("ns1", "opt1")
self.assertIsNone(provider.get("ns1", "opt1"))
self.assertEqual("value2", provider.get("ns1", "opt2"))
provider.clear()
self.assertIsNone(provider.get("ns1", "opt1"))

View file

@ -9,6 +9,9 @@ class Provider(object):
def get(self, namespace, option, default=None):
raise NotImplementedError()
def unset(self, namespace, option):
raise NotImplementedError()
def clear(self):
raise NotImplementedError()

View file

@ -24,6 +24,11 @@ class PickleProvider(interfaces.Provider):
self._data.setdefault(namespace, {})
return self._data[namespace].get(option, default)
def unset(self, namespace, option):
self._data.setdefault(namespace, {})
if option in self._data[namespace]:
del self._data[namespace][option]
def save(self):
try:
log.debug("Saving %s" % str(self._data))

View file

@ -10,3 +10,6 @@ class Storage(object):
def get(self, option, default=None):
return self._storage_provider.get(self._namespace, option, default)
def unset(self, option):
self._storage_provider.unset(self._namespace, option)