diff --git a/pyproject.toml b/pyproject.toml index 379e848..2e0cc4d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "grung-db" -version = "1.0" +version = "1.0.0.2" description = "grung-db: A very small database toolkit." authors = ["evilchili"] readme = "README.md" diff --git a/src/grung/db.py b/src/grung/db.py index 3a25b93..078eb32 100644 --- a/src/grung/db.py +++ b/src/grung/db.py @@ -52,6 +52,7 @@ class GrungDB(TinyDB): def create_table(self, table_class): name = table_class.__name__ + print(name) if name not in self._tables: self._tables[name] = RecordTable(self.storage, name, document_class=table_class) return self.table(name) @@ -77,6 +78,6 @@ class GrungDB(TinyDB): def with_schema(cls, schema_module, *args, **kwargs): db = GrungDB(*args, **kwargs) for name, obj in inspect.getmembers(schema_module): - if type(obj) == object and issubclass(Record, obj): + if type(obj) == type and issubclass(obj, Record): db.create_table(obj) return db diff --git a/test/test_db.py b/test/test_db.py index d180e67..02ea057 100644 --- a/test/test_db.py +++ b/test/test_db.py @@ -1,32 +1,19 @@ -import sys -from typing import List - import pytest from tinydb.storages import MemoryStorage +from grung import examples from grung.db import GrungDB -from grung.types import Field, Record - - -class User(Record): - _fields = [Field("name"), Field("email", unique=True)] - - -class Group(Record): - _fields = [Field("name", unique=True), Field("users", List[User])] @pytest.fixture def db(): - _db = GrungDB.with_schema(sys.modules[__name__], storage=MemoryStorage) - _db.create_table(User) - _db.create_table(Group) + _db = GrungDB.with_schema(examples, storage=MemoryStorage) yield _db print(_db) def test_crud(db): - user = User(name="john", email="john@foo") + user = examples.User(name="john", email="john@foo") assert user.uid assert user._metadata.fields["uid"].unique @@ -48,7 +35,7 @@ def test_crud(db): assert before_update != after_update # pointers - players = Group(name="players", users=[john_something]) + players = examples.Group(name="players", users=[john_something]) players = db.save(players) players.users[0]["name"] = "fnord" db.save(players)