Skip to content

Commit

Permalink
Merge pull request #264 from Scille/schema
Browse files Browse the repository at this point in the history
Refactor: put Schema stuff in schema.py
  • Loading branch information
lafrech committed Apr 29, 2020
2 parents e0305e8 + ec792b2 commit c6b6525
Show file tree
Hide file tree
Showing 9 changed files with 126 additions and 118 deletions.
42 changes: 21 additions & 21 deletions tests/test_data_proxy.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from marshmallow import ValidationError, missing

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

from .common import BaseTest

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

def test_repr(self):

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

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

def test_simple(self):

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

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

def test_load(self):

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

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

def test_modify(self):

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

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

def test_list_field_modify(self):

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

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

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

def test_set(self):

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

def test_del(self):

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

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

def test_route_naming(self):

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

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

def test_from_mongo(self):

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

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

def test_equality(self):

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

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

def test_share_ressources(self):

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

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

def test_set_to_missing_fields(self):

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

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

class MySchema(BaseSchema):
class MySchema(Schema):
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 +322,7 @@ class MySchema(BaseSchema):

def test_validate(self):

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

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

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

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

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

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

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

def test_build(self):

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

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

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

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

from bson import ObjectId, DBRef

from umongo import (Document, EmbeddedDocument, BaseSchema, fields, exceptions,
from umongo import (Document, EmbeddedDocument, Schema, fields, exceptions,
post_dump, pre_load, validates_schema)

from .common import BaseTest
Expand Down Expand Up @@ -451,7 +451,7 @@ class Doc(Document):
pass

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

def test_base_config(self):

Expand Down
22 changes: 11 additions & 11 deletions tests/test_fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from marshmallow import ValidationError, missing

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

from .common import BaseTest
Expand Down Expand Up @@ -92,7 +92,7 @@ class TestFields(BaseTest):

def test_basefields(self):

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

def test_datetime(self):

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

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

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

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

Expand Down Expand Up @@ -221,7 +221,7 @@ class MySchema(BaseSchema):

def test_date(self):

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

s = MySchema()
Expand All @@ -242,7 +242,7 @@ class MySchema(BaseSchema):

def test_dict(self):

class MySchema(BaseSchema):
class MySchema(Schema):
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 @@ -320,7 +320,7 @@ class MySchema(BaseSchema):

def test_dict_default(self):

class MySchema(BaseSchema):
class MySchema(Schema):
# 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 @@ -408,7 +408,7 @@ class MyDoc(Document):

def test_list(self):

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

MyDataProxy = data_proxy_factory('My', MySchema())
Expand Down Expand Up @@ -493,7 +493,7 @@ class MySchema(BaseSchema):

def test_list_default(self):

class MySchema(BaseSchema):
class MySchema(Schema):
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 @@ -582,7 +582,7 @@ class MyDoc(Document):

def test_objectid(self):

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

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

def test_decimal(self):

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

MyDataProxy = data_proxy_factory('My', MySchema())
Expand Down
8 changes: 4 additions & 4 deletions tests/test_marshmallow.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
import marshmallow

from umongo import Document, EmbeddedDocument, fields, set_gettext, validate, missing
from umongo import marshmallow_bonus as ma_bonus_fields
from umongo.abstract import BaseField, BaseSchema
from umongo.marshmallow_bonus import schema_from_umongo_get_attribute, SchemaFromUmongo
from umongo import marshmallow_bonus as ma_bonus_fields, Schema
from umongo.abstract import BaseField
from umongo.schema import schema_from_umongo_get_attribute, SchemaFromUmongo

from .common import BaseTest

Expand Down Expand Up @@ -39,7 +39,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, marshmallow.Schema)
assert not issubclass(ma_schema_cls, BaseSchema)
assert not issubclass(ma_schema_cls, Schema)

def test_custom_ma_base_schema_cls(self):

Expand Down
4 changes: 2 additions & 2 deletions umongo/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
UnknownFieldInDBError,
)
from . import fields, validate
from .abstract import BaseSchema
from .schema import Schema
from .data_objects import Reference
from .embedded_document import EmbeddedDocument
from .i18n import set_gettext
Expand Down Expand Up @@ -64,7 +64,7 @@

'fields',

'BaseSchema',
'Schema',

'Reference',

Expand Down
Loading

0 comments on commit c6b6525

Please sign in to comment.