Skip to content

Commit

Permalink
Merge pull request #301 from Scille/remove_schema
Browse files Browse the repository at this point in the history
Remove umongo.Schema
  • Loading branch information
lafrech committed Oct 5, 2020
2 parents f691b35 + 517e50d commit 8b8c456
Show file tree
Hide file tree
Showing 9 changed files with 89 additions and 97 deletions.
43 changes: 22 additions & 21 deletions tests/test_data_proxy.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
from bson import ObjectId
import marshmallow as ma

from umongo import fields, EmbeddedDocument, validate, exceptions
from umongo.abstract import BaseSchema
from umongo.data_proxy import data_proxy_factory, BaseDataProxy, BaseNonStrictDataProxy
from umongo import Schema, fields, EmbeddedDocument, validate, exceptions

from .common import BaseTest

Expand All @@ -13,7 +14,7 @@ class TestDataProxy(BaseTest):

def test_repr(self):

class MySchema(Schema):
class MySchema(BaseSchema):
field_a = fields.IntField(attribute='mongo_field_a')
field_b = fields.StrField()

Expand All @@ -27,7 +28,7 @@ class MySchema(Schema):

def test_simple(self):

class MySchema(Schema):
class MySchema(BaseSchema):
a = fields.IntField()
b = fields.IntField()

Expand All @@ -45,7 +46,7 @@ class MySchema(Schema):

def test_load(self):

class MySchema(Schema):
class MySchema(BaseSchema):
a = fields.IntField()
b = fields.IntField(attribute='in_mongo_b')

Expand All @@ -66,7 +67,7 @@ class MySchema(Schema):

def test_modify(self):

class MySchema(Schema):
class MySchema(BaseSchema):
a = fields.IntField()
b = fields.IntField(attribute='in_mongo_b')

Expand All @@ -89,7 +90,7 @@ class MySchema(Schema):

def test_list_field_modify(self):

class MySchema(Schema):
class MySchema(BaseSchema):
a = fields.ListField(fields.IntField())
b = fields.ListField(fields.IntField(), attribute='in_mongo_b')

Expand Down Expand Up @@ -135,7 +136,7 @@ def test_complex_field_clear_modified(self):
class MyEmbedded(EmbeddedDocument):
aa = fields.IntField()

class MySchema(Schema):
class MySchema(BaseSchema):
# EmbeddedField need instance to retrieve implementation
a = fields.EmbeddedField(MyEmbedded, instance=self.instance)
b = fields.ListField(fields.IntField)
Expand All @@ -154,7 +155,7 @@ class MySchema(Schema):

def test_set(self):

class MySchema(Schema):
class MySchema(BaseSchema):
a = fields.IntField()
b = fields.IntField(attribute='in_mongo_b')
c = fields.StrField(
Expand Down Expand Up @@ -188,7 +189,7 @@ class MySchema(Schema):

def test_del(self):

class MySchema(Schema):
class MySchema(BaseSchema):
a = fields.IntField()
b = fields.IntField(attribute='in_mongo_b')

Expand All @@ -206,7 +207,7 @@ class MySchema(Schema):

def test_route_naming(self):

class MySchema(Schema):
class MySchema(BaseSchema):
in_front = fields.IntField(attribute='in_mongo')

MyDataProxy = data_proxy_factory('My', MySchema())
Expand All @@ -225,7 +226,7 @@ class MySchema(Schema):

def test_from_mongo(self):

class MySchema(Schema):
class MySchema(BaseSchema):
in_front = fields.IntField(attribute='in_mongo')

MyDataProxy = data_proxy_factory('My', MySchema())
Expand All @@ -237,7 +238,7 @@ class MySchema(Schema):

def test_equality(self):

class MySchema(Schema):
class MySchema(BaseSchema):
a = fields.IntField()
b = fields.IntField(attribute='in_mongo_b')

Expand All @@ -257,7 +258,7 @@ class MySchema(Schema):

def test_share_ressources(self):

class MySchema(Schema):
class MySchema(BaseSchema):
a = fields.IntField()
b = fields.IntField(attribute='in_mongo_b')

Expand All @@ -272,7 +273,7 @@ class MySchema(Schema):

def test_set_to_missing_fields(self):

class MySchema(Schema):
class MySchema(BaseSchema):
a = fields.IntField()
b = fields.IntField(attribute='in_mongo_b')

Expand All @@ -291,7 +292,7 @@ def test_default(self):
default_value = ObjectId('507f1f77bcf86cd799439011')
default_callable = lambda: ObjectId('507f1f77bcf86cd799439012')

class MySchema(Schema):
class MySchema(BaseSchema):
no_default = fields.ObjectIdField()
with_default = fields.ObjectIdField(default=default_value)
with_callable_default = fields.ObjectIdField(default=default_callable)
Expand Down Expand Up @@ -322,7 +323,7 @@ class MySchema(Schema):

def test_validate(self):

class MySchema(Schema):
class MySchema(BaseSchema):
with_max = fields.IntField(validate=validate.Range(max=99))

MyDataProxy = data_proxy_factory('My', MySchema())
Expand All @@ -340,7 +341,7 @@ def test_required_validate(self):
class MyEmbedded(EmbeddedDocument):
required = fields.IntField(required=True)

class MySchema(Schema):
class MySchema(BaseSchema):
# EmbeddedField need instance to retrieve implementation
required = fields.IntField(required=True)
embedded = fields.EmbeddedField(MyEmbedded, instance=self.instance)
Expand Down Expand Up @@ -385,7 +386,7 @@ class MySchema(Schema):
}

def test_unkown_field_in_db(self):
class MySchema(Schema):
class MySchema(BaseSchema):
field = fields.IntField(attribute='mongo_field')

DataProxy = data_proxy_factory('My', MySchema())
Expand All @@ -396,7 +397,7 @@ class MySchema(Schema):
d.from_mongo({'mongo_field': 42, 'xxx': 'foo'})

def test_iterators(self):
class MySchema(Schema):
class MySchema(BaseSchema):
field_a = fields.IntField(attribute='mongo_field_a')
field_b = fields.IntField(attribute='mongo_field_b')

Expand All @@ -418,7 +419,7 @@ class TestNonStrictDataProxy(BaseTest):

def test_build(self):

class MySchema(Schema):
class MySchema(BaseSchema):
pass

strict_proxy = data_proxy_factory('My', MySchema(), strict=True)
Expand All @@ -427,7 +428,7 @@ class MySchema(Schema):
assert issubclass(non_strict_proxy, BaseNonStrictDataProxy)

def test_basic(self):
class MySchema(Schema):
class MySchema(BaseSchema):
field_a = fields.IntField(attribute='mongo_field_a')

NonStrictDataProxy = data_proxy_factory('My', MySchema(), strict=False)
Expand Down
5 changes: 3 additions & 2 deletions tests/test_document.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@

from umongo import (
Document, EmbeddedDocument, MixinDocument,
Schema, fields, exceptions, post_dump, pre_load, validates_schema, ExposeMissing
fields, exceptions, post_dump, pre_load, validates_schema, ExposeMissing
)
from umongo.abstract import BaseSchema
from .common import BaseTest


Expand Down Expand Up @@ -566,7 +567,7 @@ class Doc(Document):
pass

d = Doc()
assert isinstance(d.schema, Schema)
assert isinstance(d.schema, BaseSchema)

def test_base_config(self):

Expand Down
23 changes: 12 additions & 11 deletions tests/test_fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@
import marshmallow as ma

from umongo.data_proxy import data_proxy_factory
from umongo import Document, EmbeddedDocument, Schema, fields, Reference, validate
from umongo import Document, EmbeddedDocument, fields, Reference, validate
from umongo.data_objects import List, Dict
from umongo.abstract import BaseSchema

from .common import BaseTest

Expand Down Expand Up @@ -106,7 +107,7 @@ class TestFields(BaseTest):

def test_basefields(self):

class MySchema(Schema):
class MySchema(BaseSchema):
string = fields.StringField()
uuid = fields.UUIDField()
number = fields.NumberField()
Expand Down Expand Up @@ -173,7 +174,7 @@ class MySchema(Schema):

def test_datetime(self):

class MySchema(Schema):
class MySchema(BaseSchema):
a = fields.DateTimeField()

s = MySchema()
Expand Down Expand Up @@ -205,7 +206,7 @@ def test_aware_datetime(self):

timezone_2h = dt.timezone(dt.timedelta(hours=2), "test")

class MySchema(Schema):
class MySchema(BaseSchema):
a = fields.AwareDateTimeField()
b = fields.AwareDateTimeField(default_timezone=timezone_2h)

Expand Down Expand Up @@ -235,7 +236,7 @@ class MySchema(Schema):

def test_date(self):

class MySchema(Schema):
class MySchema(BaseSchema):
a = fields.DateField()

s = MySchema()
Expand All @@ -256,7 +257,7 @@ class MySchema(Schema):

def test_dict(self):

class MySchema(Schema):
class MySchema(BaseSchema):
dict = fields.DictField(attribute='in_mongo_dict', allow_none=True)
kdict = fields.DictField(keys=fields.StringField(validate=validate.Length(0, 1)))
vdict = fields.DictField(values=fields.IntField(validate=validate.Range(max=5)))
Expand Down Expand Up @@ -334,7 +335,7 @@ class MySchema(Schema):

def test_dict_default(self):

class MySchema(Schema):
class MySchema(BaseSchema):
# Passing a mutable as default is a bad idea in real life
d_dict = fields.DictField(values=fields.IntField, default={'1': 1, '2': 2})
c_dict = fields.DictField(values=fields.IntField, default=lambda: {'1': 1, '2': 2})
Expand Down Expand Up @@ -422,7 +423,7 @@ class MyDoc(Document):

def test_list(self):

class MySchema(Schema):
class MySchema(BaseSchema):
list = fields.ListField(fields.IntField(), attribute='in_mongo_list', allow_none=True)

MyDataProxy = data_proxy_factory('My', MySchema())
Expand Down Expand Up @@ -507,7 +508,7 @@ class MySchema(Schema):

def test_list_default(self):

class MySchema(Schema):
class MySchema(BaseSchema):
d_list = fields.ListField(fields.IntField(), default=(1, 2, 3))
c_list = fields.ListField(fields.IntField(), default=lambda: (1, 2, 3))

Expand Down Expand Up @@ -596,7 +597,7 @@ class MyDoc(Document):

def test_objectid(self):

class MySchema(Schema):
class MySchema(BaseSchema):
objid = fields.ObjectIdField(attribute='in_mongo_objid')

MyDataProxy = data_proxy_factory('My', MySchema())
Expand Down Expand Up @@ -767,7 +768,7 @@ class MyDoc(Document):

def test_decimal(self):

class MySchema(Schema):
class MySchema(BaseSchema):
price = fields.DecimalField(attribute='in_mongo_price')

MyDataProxy = data_proxy_factory('My', MySchema())
Expand Down
11 changes: 6 additions & 5 deletions tests/test_marshmallow.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@
from bson import ObjectId
import marshmallow as ma

from umongo import Document, EmbeddedDocument, fields, set_gettext, validate, missing
from umongo import marshmallow_bonus as ma_bonus_fields, Schema
from umongo.abstract import BaseField
from umongo.schema import RemoveMissingSchema
from umongo import (
Document, EmbeddedDocument, fields, set_gettext, validate, missing, RemoveMissingSchema
)
from umongo import marshmallow_bonus as ma_bonus_fields
from umongo.abstract import BaseField, BaseSchema

from .common import BaseTest

Expand Down Expand Up @@ -37,7 +38,7 @@ def test_by_field(self):
def test_by_schema(self):
ma_schema_cls = self.User.schema.as_marshmallow_schema()
assert issubclass(ma_schema_cls, ma.Schema)
assert not issubclass(ma_schema_cls, Schema)
assert not issubclass(ma_schema_cls, BaseSchema)

def test_custom_ma_base_schema_cls(self):

Expand Down
6 changes: 2 additions & 4 deletions umongo/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,10 @@
UnknownFieldInDBError,
)
from . import fields, validate
from .schema import Schema
from .data_objects import Reference
from .embedded_document import EmbeddedDocument
from .mixin import MixinDocument
from .expose_missing import ExposeMissing
from .expose_missing import ExposeMissing, RemoveMissingSchema
from .i18n import set_gettext


Expand All @@ -54,6 +53,7 @@
'EmbeddedDocument',
'MixinDocument',
'ExposeMissing',
'RemoveMissingSchema',

'UMongoError',
'ValidationError',
Expand All @@ -66,8 +66,6 @@

'fields',

'Schema',

'Reference',

'set_gettext',
Expand Down
Loading

0 comments on commit 8b8c456

Please sign in to comment.