diff --git a/README.md b/README.md index d12c2ea..cdd5ab6 100644 --- a/README.md +++ b/README.md @@ -168,6 +168,7 @@ See TypeSystem for [type-specific validation keyword arguments][typesystem-field * `orm.String(max_length)` * `orm.Text()` +* `orm.BigInteger()` * `orm.Boolean()` * `orm.Integer()` * `orm.Float()` diff --git a/orm/__init__.py b/orm/__init__.py index 3257536..67b42c6 100644 --- a/orm/__init__.py +++ b/orm/__init__.py @@ -1,6 +1,7 @@ from orm.exceptions import MultipleMatches, NoMatch from orm.fields import ( JSON, + BigInteger, Boolean, Date, DateTime, @@ -13,18 +14,19 @@ ) from orm.models import Model -__version__ = "0.1.4" +__version__ = "0.1.5" __all__ = [ "NoMatch", "MultipleMatches", + "BigInteger", "Boolean", - "Integer", + "Date", + "DateTime", "Float", + "Integer", "String", "Text", - "Date", "Time", - "DateTime", "JSON", "ForeignKey", "Model", diff --git a/orm/fields.py b/orm/fields.py index 68ee1bc..66f1b38 100644 --- a/orm/fields.py +++ b/orm/fields.py @@ -62,6 +62,11 @@ def get_column_type(self): return sqlalchemy.Integer() +class BigInteger(ModelField, typesystem.Integer): + def get_column_type(self): + return sqlalchemy.BigInteger() + + class Float(ModelField, typesystem.Float): def get_column_type(self): return sqlalchemy.Float() diff --git a/tests/test_columns.py b/tests/test_columns.py index 8604443..e0e0dfb 100644 --- a/tests/test_columns.py +++ b/tests/test_columns.py @@ -23,6 +23,7 @@ class Example(orm.Model): __database__ = database id = orm.Integer(primary_key=True) + huge_number = orm.BigInteger(default=9223372036854775807) created = orm.DateTime(default=datetime.datetime.now) created_day = orm.Date(default=datetime.date.today) created_time = orm.Time(default=time) @@ -46,7 +47,7 @@ def async_adapter(wrapped_func): @functools.wraps(wrapped_func) def run_sync(*args, **kwargs): - loop = asyncio.get_event_loop() + loop = asyncio.new_event_loop() task = wrapped_func(*args, **kwargs) return loop.run_until_complete(task) @@ -59,6 +60,7 @@ async def test_model_crud(): await Example.objects.create() example = await Example.objects.get() + assert example.huge_number == 9223372036854775807 assert example.created.year == datetime.datetime.now().year assert example.created_day == datetime.date.today() assert example.description == "" diff --git a/tests/test_foreignkey.py b/tests/test_foreignkey.py index 66f8621..4e0e957 100644 --- a/tests/test_foreignkey.py +++ b/tests/test_foreignkey.py @@ -76,7 +76,7 @@ def async_adapter(wrapped_func): @functools.wraps(wrapped_func) def run_sync(*args, **kwargs): - loop = asyncio.get_event_loop() + loop = asyncio.new_event_loop() task = wrapped_func(*args, **kwargs) return loop.run_until_complete(task) diff --git a/tests/test_models.py b/tests/test_models.py index 3c62ca0..21482ff 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -47,7 +47,7 @@ def async_adapter(wrapped_func): @functools.wraps(wrapped_func) def run_sync(*args, **kwargs): - loop = asyncio.get_event_loop() + loop = asyncio.new_event_loop() task = wrapped_func(*args, **kwargs) return loop.run_until_complete(task)