[FEA] Added Conroller for sanity
This commit is contained in:
@@ -11,4 +11,5 @@ def create(session:Session, library:Base):
|
|||||||
session.commit()
|
session.commit()
|
||||||
logger.debug("Committed Library")
|
logger.debug("Committed Library")
|
||||||
session.refresh(library)
|
session.refresh(library)
|
||||||
logger.debug("Rerfreshed Library")
|
logger.debug("Refreshed Library")
|
||||||
|
return library
|
||||||
|
|||||||
@@ -18,10 +18,14 @@ class LibraryController:
|
|||||||
else:
|
else:
|
||||||
self._engine = engine
|
self._engine = engine
|
||||||
self._Session = sessionmaker(bind=self.engine)
|
self._Session = sessionmaker(bind=self.engine)
|
||||||
|
self._session = self._Session()
|
||||||
self._library = None
|
self._library = None
|
||||||
if library_id is not None:
|
if library_id is not None:
|
||||||
self.read(library_id)
|
self.read(library_id)
|
||||||
|
|
||||||
|
def __del__(self):
|
||||||
|
self.session.close()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def data(self):
|
def data(self):
|
||||||
return self._library
|
return self._library
|
||||||
@@ -36,25 +40,20 @@ class LibraryController:
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def session(self):
|
def session(self):
|
||||||
return self.Session()
|
return self._session
|
||||||
|
|
||||||
def create(self, library:Library):
|
def create(self, library:Library):
|
||||||
with self.session as session:
|
self._library = create(self.session, library)
|
||||||
self._library = create(session, library)
|
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def read(self, _id):
|
def read(self, _id):
|
||||||
with self.session as session:
|
self._library = read(self.session, _id, Library)
|
||||||
self._library = read(session, _id, Library)
|
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
with self.session as session:
|
self.session.commit()
|
||||||
session.commit()
|
|
||||||
|
|
||||||
def delete(self):
|
def delete(self):
|
||||||
with self.session as session:
|
delete(self.session, self)
|
||||||
delete(session, self)
|
|
||||||
del(self)
|
del(self)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ class TestDB(unittest.TestCase):
|
|||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
os.environ["DEV_URIA_BIBLIOGAME_CONFIG_DB"] = "sqlite:///"
|
os.environ["DEV_URIA_BIBLIOGAME_CONFIG_DB"] = "sqlite:///"
|
||||||
os.environ["DEV_URIA_BIBLIOGAME_DEBUG"] = "true"
|
os.environ["DEV_URIA_BIBLIOGAME_DEBUG"] = "false"
|
||||||
self.engine = install()
|
self.engine = install()
|
||||||
|
|
||||||
self.library = LibraryController(engine = self.engine)
|
self.library = LibraryController(engine = self.engine)
|
||||||
@@ -57,48 +57,47 @@ class TestDB(unittest.TestCase):
|
|||||||
return super().setUp()
|
return super().setUp()
|
||||||
|
|
||||||
def test_install(self):
|
def test_install(self):
|
||||||
library = LibraryController(1, engine = self.engine)
|
library = LibraryController(1, engine=self.engine)
|
||||||
library_string = str(library.data)
|
library_string = str(library.data)
|
||||||
self.assertEqual(library_string, str(self.library.data))
|
self.assertEqual(library_string, str(self.library.data))
|
||||||
"""
|
|
||||||
def test_read_name(self):
|
def test_read_name(self):
|
||||||
library = read(self.session, 1)
|
library = LibraryController(1, engine=self.engine)
|
||||||
logger.debug(f"Name: {library.name}")
|
logger.debug(f"Name: {library.data.name}")
|
||||||
self.assertEqual(library.name, self.library.name)
|
self.assertEqual(library.data.name, self.library.data.name)
|
||||||
self.assertEqual(library.name, "Library Test")
|
self.assertEqual(library.data.name, "Library Test")
|
||||||
|
|
||||||
def test_read_notes(self):
|
def test_read_notes(self):
|
||||||
library = read(self.session, 1)
|
library = LibraryController(1, engine=self.engine)
|
||||||
logger.debug(f"Notes: {library.notes}")
|
logger.debug(f"Notes: {library.data.notes}")
|
||||||
self.assertEqual(library.notes, self.library.notes)
|
self.assertEqual(library.data.notes, self.library.data.notes)
|
||||||
self.assertEqual(library.notes, "My duckling library test")
|
self.assertEqual(library.data.notes, "My duckling library test")
|
||||||
|
|
||||||
def test_read_path(self):
|
def test_read_path(self):
|
||||||
library = read(self.session, 1)
|
library = LibraryController(1, engine=self.engine)
|
||||||
logger.debug(f"PATH: {library.paths[0].path}")
|
logger.debug(f"PATH: {library.data.paths[0].path}")
|
||||||
self.assertEqual(library.paths[0].path, self.library.paths[0].path)
|
self.assertEqual(library.data.paths[0].path, self.library.data.paths[0].path)
|
||||||
self.assertEqual(library.paths[0].path, "/home/ivan/Documentos/ttprpg")
|
self.assertEqual(library.data.paths[0].path, "/home/ivan/Documentos/ttprpg")
|
||||||
|
|
||||||
def test_read_env(self):
|
def test_read_env(self):
|
||||||
library = read(self.session, 1)
|
library = LibraryController(1, engine=self.engine)
|
||||||
logger.debug(f"ENV: {library.envs[0].key} - {library.envs[0].value}")
|
logger.debug(f"ENV: {library.data.envs[0].key} - {library.data.envs[0].value}")
|
||||||
self.assertEqual(library.envs[0].key, self.library.envs[0].key)
|
self.assertEqual(library.data.envs[0].key, self.library.data.envs[0].key)
|
||||||
self.assertEqual(library.envs[0].value, self.library.envs[0].value)
|
self.assertEqual(library.data.envs[0].value, self.library.data.envs[0].value)
|
||||||
self.assertEqual(library.envs[0].key, "ENVIRONMENT_VARIABLE")
|
self.assertEqual(library.data.envs[0].key, "ENVIRONMENT_VARIABLE")
|
||||||
self.assertEqual(library.envs[0].value, "Clearly an environment variable")
|
self.assertEqual(library.data.envs[0].value, "Clearly an environment variable")
|
||||||
|
|
||||||
def test_read_book(self):
|
def test_read_book(self):
|
||||||
library = read(self.session, 1)
|
library = LibraryController(1, engine=self.engine)
|
||||||
book = library.books[0]
|
book = library.data.books[0]
|
||||||
logger.debug(f"BOOK: {book}")
|
logger.debug(f"BOOK: {book}")
|
||||||
self.assertEqual(book.name, self.library.books[0].name)
|
self.assertEqual(book.name, self.library.data.books[0].name)
|
||||||
self.assertEqual(book.name, "Test book")
|
self.assertEqual(book.name, "Test book")
|
||||||
|
|
||||||
def test_read_tags(self):
|
def test_read_tags(self):
|
||||||
library = read(self.session, 1)
|
library = LibraryController(1, engine=self.engine)
|
||||||
tags = library.tags
|
tags = library.data.tags
|
||||||
self.assertEqual(tags, self.library.tags)
|
self.assertEqual(str(tags), str(self.library.data.tags))
|
||||||
self.assertEqual(tags, self.tags)
|
|
||||||
self.assertEqual(str(tags[0]), str(self.tags[0]))
|
self.assertEqual(str(tags[0]), str(self.tags[0]))
|
||||||
self.assertEqual(tags[0].name, self.tags[0].name)
|
self.assertEqual(tags[0].name, self.tags[0].name)
|
||||||
self.assertEqual(tags[0].name, "Foo")
|
self.assertEqual(tags[0].name, "Foo")
|
||||||
@@ -107,9 +106,9 @@ class TestDB(unittest.TestCase):
|
|||||||
self.assertEqual(tags[1].name, "Bar")
|
self.assertEqual(tags[1].name, "Bar")
|
||||||
|
|
||||||
def test_read_book_tags(self):
|
def test_read_book_tags(self):
|
||||||
library = read(self.session, 1)
|
library = LibraryController(1, engine=self.engine)
|
||||||
book = library.books[0]
|
book = library.data.books[0]
|
||||||
tags = library.tags
|
tags = library.data.tags
|
||||||
logger.debug(f"BOOK TAGS: {book.tags}")
|
logger.debug(f"BOOK TAGS: {book.tags}")
|
||||||
self.assertEqual(str(book.tags[0].tag), str(self.tags[0]))
|
self.assertEqual(str(book.tags[0].tag), str(self.tags[0]))
|
||||||
self.assertEqual(str(book.tags[0].tag), str(tags[0]))
|
self.assertEqual(str(book.tags[0].tag), str(tags[0]))
|
||||||
@@ -118,26 +117,26 @@ class TestDB(unittest.TestCase):
|
|||||||
self.assertNotEqual(book.tags[0].tag.name, "Bar")
|
self.assertNotEqual(book.tags[0].tag.name, "Bar")
|
||||||
|
|
||||||
def test_update_name(self):
|
def test_update_name(self):
|
||||||
library = read(self.session, 1)
|
library = LibraryController(1, engine=self.engine)
|
||||||
library.name = "Another Library"
|
library.data.name = "Another Library"
|
||||||
update(self.session, library)
|
library.update()
|
||||||
library1 = read(self.session, 1)
|
library1 = LibraryController(1, engine=self.engine)
|
||||||
self.assertEqual(library1.name, self.library.name)
|
self.assertEqual(library1.data.name, self.library.data.name)
|
||||||
self.assertNotEqual(library1.name, "Library Test")
|
self.assertNotEqual(library1.data.name, "Library Test")
|
||||||
self.assertEqual(library1.name, "Another Library")
|
self.assertEqual(library1.data.name, "Another Library")
|
||||||
|
|
||||||
def test_update_name(self):
|
def test_update_name(self):
|
||||||
library = read(self.session, 1)
|
library = LibraryController(1, engine=self.engine)
|
||||||
library.books[0].name = "Another Book on the shelf"
|
library.data.books[0].name = "Another Book on the shelf"
|
||||||
update(self.session, library)
|
library.update()
|
||||||
|
|
||||||
library1 = read(self.session, 1)
|
library1 = LibraryController(1, engine=self.engine)
|
||||||
book = library1.books[0]
|
book = library1.data.books[0]
|
||||||
|
|
||||||
self.assertEqual(book.name, self.library.books[0].name)
|
self.assertEqual(book.name, self.library.data.books[0].name)
|
||||||
self.assertNotEqual(book.name, "Test book")
|
self.assertNotEqual(book.name, "Test book")
|
||||||
self.assertEqual(book.name, "Another Book on the shelf")
|
self.assertEqual(book.name, "Another Book on the shelf")
|
||||||
"""
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
@@ -15,7 +15,7 @@ class TestDB(unittest.TestCase):
|
|||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
os.environ["DEV_URIA_BIBLIOGAME_CONFIG_DB"] = "sqlite:///"
|
os.environ["DEV_URIA_BIBLIOGAME_CONFIG_DB"] = "sqlite:///"
|
||||||
os.environ["DEV_URIA_BIBLIOGAME_DEBUG"] = "true"
|
os.environ["DEV_URIA_BIBLIOGAME_DEBUG"] = "false"
|
||||||
self.engine = install()
|
self.engine = install()
|
||||||
self.tags = [
|
self.tags = [
|
||||||
Tag(
|
Tag(
|
||||||
|
|||||||
Reference in New Issue
Block a user