Beispiel #1
0
        class TestDoc(Document):
            class __mongometa__:
                name = 'test_doc'
                session = self.MockSession

            version = Field(1)
            a = Field(int)
Beispiel #2
0
        class TestDoc(Document):
            class __mongometa__:
                name = 'test_doc'
                session = self.MockSession

            a = Field(int)
            b = Field(S.Object(dict(a=int)))
Beispiel #3
0
        class TestDoc(Document):
            class __mongometa__:
                name = 'test_doc'
                session = self.MockSession
                indexes = [('a', )]

            a = Field(S.Int, if_missing=None)
            b = Field(S.Object(dict(a=S.Int(if_missing=None))))
Beispiel #4
0
 def field(self):
     if not self._compiled: raise AttributeError('field')
     if self.uselist:
         self.kwargs.setdefault('if_missing', [])
         return Field(self.name, [self.related._id.field.type], **self.kwargs)
     else:
         self.kwargs.setdefault('if_missing', None)
         return Field(self.name, self.related._id.field.type, **self.kwargs)
Beispiel #5
0
        class Base(Document):
            class __mongometa__:
                name = 'test_doc'
                session = self.MockSession
                polymorphic_registry = {}
                polymorphic_on = 'type'
                polymorphic_identity = 'base'

            type = Field(str)
            a = Field(int)
Beispiel #6
0
        class TestDoc(Document):
            class __mongometa__:
                name = 'test_doc'
                session = self.MockSession
                version_of = TestDoc

                def migrate(old_doc):
                    return dict(old_doc, b=42, version=2)

            version = Field(2)
            a = Field(int)
            b = Field(int, required=True)
Beispiel #7
0
        class Base(Document):
            class __mongometa__:
                name = 'test_doc'
                session = self.session
                polymorphic_registry = {}
                polymorphic_on = 'type'
                polymorphic_identity = 'base'

                def before_save(instance):
                    tc.hooks_called['before_save'].append(instance)

            _id = Field(int)
            type = Field(str)
            a = Field(int)
Beispiel #8
0
        class Derived(Base):
            class __mongometa__:
                name = 'test_doc'
                session = self.session
                polymorphic_identity = 'derived'

            b = Field(int)
Beispiel #9
0
        class TestDoc(Document):
            class __mongometa__:
                name = 'test_doc'
                session = self.MockSession

            _a = Field('a', S.Int, if_missing=S.Missing)

            @property
            def a(self):
                native = getattr(self, '_a', None)
                if native < 10: return native
                return 10
Beispiel #10
0
 def __init__(self, field_type, *args, **kwargs):
     ORMProperty.__init__(self)
     if isinstance(field_type, Field):
         self.field = field_type
         if args or kwargs:
             raise TypeError, 'Unexpected args: %r, %r' % (args, kwargs)
     else:
         self.field = Field(field_type, *args, **kwargs)
     if not isinstance(self.field.name, (basestring, type(None))):
         raise TypeError, 'Field name must be string or None, not %r' % (
             self.field.name)
     self.name = self.field.name
     if self.name == '_id':
         self.__get__ = self._get_id
Beispiel #11
0
def filesystem(*args, **kwargs):
    fields, indexes, collection_name, bases, session = _process_collection_args(
        args, kwargs)
    field_index = dict((f.name, f) for f in fields)
    field_index.setdefault('filename', Field('filename', str, index=True))
    field_index.setdefault('content_type', Field('contentType',
                                                 str,
                                                 index=True))
    field_index.setdefault('_id', Field('_id', S.ObjectId()))
    field_index.setdefault('chunkSize', Field('chunkSize', int))
    field_index.setdefault('length', Field('length', int))
    field_index.setdefault('md5', Field('md5', str))
    field_index.setdefault('uploadDate', Field('uploadDate', datetime))
    dct = dict((k, _FieldDescriptor(f)) for k, f in field_index.items())

    cls = type('Filesystem<%s>' % collection_name, bases, dct)
    fields = field_index.values()
    m = _FSClassManager(cls, collection_name, session, fields, indexes,
                        **kwargs)
    cls.m = _ManagerDescriptor(m)
    return cls
Beispiel #12
0
        class TestDoc(Document):
            class __mongometa__:
                indexes = ['abc']

            _id = Field(S.Int)
            abc = Field(S.Int, if_missing=None)
Beispiel #13
0
 def field(self):
     if not self._compiled: raise AttributeError, 'field'
     return Field(self.name, self.related._id.field.type, **self.kwargs)