diff --git a/app/api/cruds/base/create.py b/app/api/cruds/base/create.py index baa0d29..a6c5cee 100644 --- a/app/api/cruds/base/create.py +++ b/app/api/cruds/base/create.py @@ -11,4 +11,5 @@ def create(session:Session, library:Base): session.commit() logger.debug("Committed Library") session.refresh(library) - logger.debug("Rerfreshed Library") + logger.debug("Refreshed Library") + return library diff --git a/app/controller/__init__.py b/app/controller/__init__.py index 2d301e5..555f6bc 100644 --- a/app/controller/__init__.py +++ b/app/controller/__init__.py @@ -18,10 +18,14 @@ class LibraryController: else: self._engine = engine self._Session = sessionmaker(bind=self.engine) + self._session = self._Session() self._library = None if library_id is not None: self.read(library_id) + def __del__(self): + self.session.close() + @property def data(self): return self._library @@ -36,25 +40,20 @@ class LibraryController: @property def session(self): - return self.Session() + return self._session def create(self, library:Library): - with self.session as session: - self._library = create(session, library) + self._library = create(self.session, library) return self def read(self, _id): - with self.session as session: - self._library = read(session, _id, Library) + self._library = read(self.session, _id, Library) return self def update(self): - with self.session as session: - session.commit() + self.session.commit() def delete(self): - with self.session as session: - delete(session, self) - del(self) + delete(self.session, self) + del(self) - diff --git a/tests/test_controller.py b/tests/test_controller.py index 17bea4c..645189e 100644 --- a/tests/test_controller.py +++ b/tests/test_controller.py @@ -15,7 +15,7 @@ class TestDB(unittest.TestCase): def setUp(self): 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.library = LibraryController(engine = self.engine) @@ -57,48 +57,47 @@ class TestDB(unittest.TestCase): return super().setUp() def test_install(self): - library = LibraryController(1, engine = self.engine) + library = LibraryController(1, engine=self.engine) library_string = str(library.data) self.assertEqual(library_string, str(self.library.data)) - """ + def test_read_name(self): - library = read(self.session, 1) - logger.debug(f"Name: {library.name}") - self.assertEqual(library.name, self.library.name) - self.assertEqual(library.name, "Library Test") - + library = LibraryController(1, engine=self.engine) + logger.debug(f"Name: {library.data.name}") + self.assertEqual(library.data.name, self.library.data.name) + self.assertEqual(library.data.name, "Library Test") + def test_read_notes(self): - library = read(self.session, 1) - logger.debug(f"Notes: {library.notes}") - self.assertEqual(library.notes, self.library.notes) - self.assertEqual(library.notes, "My duckling library test") + library = LibraryController(1, engine=self.engine) + logger.debug(f"Notes: {library.data.notes}") + self.assertEqual(library.data.notes, self.library.data.notes) + self.assertEqual(library.data.notes, "My duckling library test") def test_read_path(self): - library = read(self.session, 1) - logger.debug(f"PATH: {library.paths[0].path}") - self.assertEqual(library.paths[0].path, self.library.paths[0].path) - self.assertEqual(library.paths[0].path, "/home/ivan/Documentos/ttprpg") + library = LibraryController(1, engine=self.engine) + logger.debug(f"PATH: {library.data.paths[0].path}") + self.assertEqual(library.data.paths[0].path, self.library.data.paths[0].path) + self.assertEqual(library.data.paths[0].path, "/home/ivan/Documentos/ttprpg") def test_read_env(self): - library = read(self.session, 1) - logger.debug(f"ENV: {library.envs[0].key} - {library.envs[0].value}") - self.assertEqual(library.envs[0].key, self.library.envs[0].key) - self.assertEqual(library.envs[0].value, self.library.envs[0].value) - self.assertEqual(library.envs[0].key, "ENVIRONMENT_VARIABLE") - self.assertEqual(library.envs[0].value, "Clearly an environment variable") + library = LibraryController(1, engine=self.engine) + logger.debug(f"ENV: {library.data.envs[0].key} - {library.data.envs[0].value}") + self.assertEqual(library.data.envs[0].key, self.library.data.envs[0].key) + self.assertEqual(library.data.envs[0].value, self.library.data.envs[0].value) + self.assertEqual(library.data.envs[0].key, "ENVIRONMENT_VARIABLE") + self.assertEqual(library.data.envs[0].value, "Clearly an environment variable") def test_read_book(self): - library = read(self.session, 1) - book = library.books[0] + library = LibraryController(1, engine=self.engine) + book = library.data.books[0] 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") def test_read_tags(self): - library = read(self.session, 1) - tags = library.tags - self.assertEqual(tags, self.library.tags) - self.assertEqual(tags, self.tags) + library = LibraryController(1, engine=self.engine) + tags = library.data.tags + self.assertEqual(str(tags), str(self.library.data.tags)) self.assertEqual(str(tags[0]), str(self.tags[0])) self.assertEqual(tags[0].name, self.tags[0].name) self.assertEqual(tags[0].name, "Foo") @@ -107,9 +106,9 @@ class TestDB(unittest.TestCase): self.assertEqual(tags[1].name, "Bar") def test_read_book_tags(self): - library = read(self.session, 1) - book = library.books[0] - tags = library.tags + library = LibraryController(1, engine=self.engine) + book = library.data.books[0] + tags = library.data.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(tags[0])) @@ -118,26 +117,26 @@ class TestDB(unittest.TestCase): self.assertNotEqual(book.tags[0].tag.name, "Bar") def test_update_name(self): - library = read(self.session, 1) - library.name = "Another Library" - update(self.session, library) - library1 = read(self.session, 1) - self.assertEqual(library1.name, self.library.name) - self.assertNotEqual(library1.name, "Library Test") - self.assertEqual(library1.name, "Another Library") + library = LibraryController(1, engine=self.engine) + library.data.name = "Another Library" + library.update() + library1 = LibraryController(1, engine=self.engine) + self.assertEqual(library1.data.name, self.library.data.name) + self.assertNotEqual(library1.data.name, "Library Test") + self.assertEqual(library1.data.name, "Another Library") def test_update_name(self): - library = read(self.session, 1) - library.books[0].name = "Another Book on the shelf" - update(self.session, library) + library = LibraryController(1, engine=self.engine) + library.data.books[0].name = "Another Book on the shelf" + library.update() - library1 = read(self.session, 1) - book = library1.books[0] + library1 = LibraryController(1, engine=self.engine) + 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.assertEqual(book.name, "Another Book on the shelf") - """ + if __name__ == "__main__": unittest.main() \ No newline at end of file diff --git a/tests/test_db.py b/tests/test_db.py index b19a7e3..9c374f0 100644 --- a/tests/test_db.py +++ b/tests/test_db.py @@ -15,7 +15,7 @@ class TestDB(unittest.TestCase): def setUp(self): 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.tags = [ Tag(