[UPD] Added BookTag

This commit is contained in:
2026-02-13 14:29:39 +01:00
parent dc819b1674
commit 75c295ce4b
6 changed files with 112 additions and 21 deletions

View File

@@ -4,10 +4,11 @@ import unittest
from sqlalchemy.orm import sessionmaker
from app.api.actions import install
from app.api.cruds.library import create, read
from app.schema.library import Library, Path, Env
from app.api.cruds.library import create, read, update
from app.schema.library import Library, Path, Env, Book, Tag, BookTag
import logging
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)
class TestDB(unittest.TestCase):
@@ -16,6 +17,14 @@ class TestDB(unittest.TestCase):
os.environ["DEV_URIA_BIBLIOGAME_CONFIG_DB"] = "sqlite:///"
os.environ["DEV_URIA_BIBLIOGAME_DEBUG"] = "true"
self.engine = install()
self.tags = [
Tag(
name="Foo"
),
Tag(
name="Bar"
)
]
self.library = Library(
name="Library Test",
notes="My duckling library test",
@@ -29,7 +38,18 @@ class TestDB(unittest.TestCase):
key="ENVIRONMENT_VARIABLE",
value="Clearly an environment variable"
)
]
],
books=[
Book(
name="Test book",
tags=[
BookTag(
tag=self.tags[0]
)
]
),
],
tags=self.tags
)
self.Session = sessionmaker(bind=self.engine)
self.session = self.Session()
@@ -64,8 +84,46 @@ class TestDB(unittest.TestCase):
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")
self.assertEqual(library.envs[0].value, "Clearly an environment variable")
def test_read_book(self):
library = read(self.session, 1)
book = library.books[0]
logger.debug(f"BOOK: {book}")
self.assertEqual(book.name, self.library.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)
self.assertEqual(str(tags[0]), str(self.tags[0]))
self.assertEqual(tags[0].name, self.tags[0].name)
self.assertEqual(tags[0].name, "Foo")
self.assertEqual(str(tags[1]), str(self.tags[1]))
self.assertEqual(tags[1].name, self.tags[1].name)
self.assertEqual(tags[1].name, "Bar")
def test_read_book_tags(self):
library = read(self.session, 1)
book = library.books[0]
tags = library.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]))
self.assertEqual(book.tags[0].tag.name, tags[0].name)
self.assertEqual(book.tags[0].tag.name, "Foo")
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)
self.assertEqual(library.name, self.library.name)
self.assertNotEqual(library.name, "Library Test")
self.assertEqual(library.name, "Another Library")
if __name__ == "__main__":
unittest.main()