Implement move, set, unset on persistedstore

This commit is contained in:
lash
2022-02-01 13:54:27 +00:00
parent 60dee4167e
commit 1e077be121
6 changed files with 105 additions and 14 deletions

View File

@@ -9,6 +9,7 @@ from shep.store.file import SimpleFileStoreFactory
from shep.error import (
StateExists,
StateInvalid,
StateItemExists,
)
@@ -34,7 +35,7 @@ class TestStateReport(unittest.TestCase):
def test_dup(self):
self.states.put('abcd', state=self.states.FOO)
with self.assertRaises(FileExistsError):
with self.assertRaises(StateItemExists):
self.states.put('abcd', state=self.states.FOO)
with self.assertRaises(FileExistsError):
@@ -66,7 +67,55 @@ class TestStateReport(unittest.TestCase):
self.assertIn('yyy', keys)
self.assertNotIn('1234', keys)
self.assertNotIn('xx!', keys)
def test_move(self):
self.states.put('abcd', state=self.states.FOO, contents='foo')
self.states.move('abcd', self.states.BAR)
fp = os.path.join(self.d, 'BAR', 'abcd')
f = open(fp, 'r')
v = f.read()
f.close()
fp = os.path.join(self.d, 'FOO', 'abcd')
with self.assertRaises(FileNotFoundError):
os.stat(fp)
def test_set(self):
self.states.alias('xyzzy', self.states.FOO | self.states.BAR)
self.states.put('abcd', state=self.states.FOO, contents='foo')
self.states.set('abcd', self.states.BAR)
fp = os.path.join(self.d, 'XYZZY', 'abcd')
f = open(fp, 'r')
v = f.read()
f.close()
fp = os.path.join(self.d, 'FOO', 'abcd')
with self.assertRaises(FileNotFoundError):
os.stat(fp)
fp = os.path.join(self.d, 'BAR', 'abcd')
with self.assertRaises(FileNotFoundError):
os.stat(fp)
self.states.unset('abcd', self.states.FOO)
fp = os.path.join(self.d, 'BAR', 'abcd')
f = open(fp, 'r')
v = f.read()
f.close()
fp = os.path.join(self.d, 'FOO', 'abcd')
with self.assertRaises(FileNotFoundError):
os.stat(fp)
fp = os.path.join(self.d, 'XYZZY', 'abcd')
with self.assertRaises(FileNotFoundError):
os.stat(fp)
if __name__ == '__main__':
unittest.main()