def test_to_son(self):
        field = DateTimeField()

        dt = datetime(2010, 11, 12, 13, 14, 15)

        expect(field.to_son(dt)).to_equal(dt)
        expect(field.to_son(None)).to_be_null()
    def test_from_son_from_string_utc_enforced(self):
        field = DateTimeField(tz=utc)

        dt_str = "2010-11-12 13:14:15"
        dt_utc = datetime(2010, 11, 12, 13, 14, 15, tzinfo=utc)

        expect(field.from_son(dt_str)).to_equal(dt_utc)
    def test_validate(self):
        dt = datetime(2010, 11, 12, 13, 14, 15)
        field = DateTimeField()

        expect(field.validate(None)).to_be_true()
        expect(field.validate(dt)).to_be_true()
        expect(field.validate("qwieiqw")).to_be_false()
    def test_from_son_from_string_utc_enforced(self):
        field = DateTimeField(tz=utc)

        dt_str = "2010-11-12 13:14:15"
        dt_utc = datetime(2010, 11, 12, 13, 14, 15, tzinfo=utc)

        expect(field.from_son(dt_str)).to_equal(dt_utc)
    def test_to_son_with_auto_insert_utc(self):
        dt = datetime.now(utc)
        field = DateTimeField(auto_now_on_insert=True, tz=utc)

        expect(field.to_son(
            field.get_value(None))).to_be_greater_or_equal_to(dt)
        expect(field.get_value(None).tzinfo).to_equal(utc)
    def test_to_son(self):
        field = DateTimeField()

        dt = datetime(2010, 11, 12, 13, 14, 15)

        expect(field.to_son(dt)).to_equal(dt)
        expect(field.to_son(None)).to_be_null()
    def test_from_son_from_string(self):
        field = DateTimeField()

        dt_str = "2010-11-12 13:14:15"
        dt = datetime(2010, 11, 12, 13, 14, 15)

        expect(field.from_son(dt_str)).to_equal(dt)
    def test_validate(self):
        dt = datetime(2010, 11, 12, 13, 14, 15)
        field = DateTimeField()

        expect(field.validate(None)).to_be_true()
        expect(field.validate(dt)).to_be_true()
        expect(field.validate("qwieiqw")).to_be_false()
    def test_to_son_with_auto_update(self):
        dt = datetime(2010, 11, 12, 13, 14, 15)
        now = datetime.now()
        field = DateTimeField(auto_now_on_update=True)
        expect(field.get_value(None).tzinfo).to_equal(None)

        expect(field.to_son(field.get_value(dt))).to_be_greater_or_equal_to(now)
    def test_from_son_from_string(self):
        field = DateTimeField()

        dt_str = "2010-11-12 13:14:15"
        dt = datetime(2010, 11, 12, 13, 14, 15)

        expect(field.from_son(dt_str)).to_equal(dt)
    def test_to_son_with_auto_update(self):
        dt = datetime(2010, 11, 12, 13, 14, 15)
        now = datetime.now()
        field = DateTimeField(auto_now_on_update=True)
        expect(field.get_value(None).tzinfo).to_equal(None)

        expect(field.to_son(
            field.get_value(dt))).to_be_greater_or_equal_to(now)
Example #12
0
class Event(BaseDocument):
    name = StringField(required=True, max_length=255)
    status = StringField(required=True, max_length=16)
    level = StringField(required=True, max_length=16)
    started_at = DateTimeField(required=True)
    ended_at = DateTimeField(required=True)
    # created_by = ReferenceField(reference_document_type=User)
    created_at = DateTimeField(required=True, auto_now_on_insert=True)
    participants = ListField(JsonField(required=True))
Example #13
0
class Alteration(BaseDocument):
    title = StringField(max_length=64)
    product = StringField(max_length=32)
    execute_at = DateTimeField()
    reason = StringField(max_length=128)
    effect = StringField(max_length=128)
    sent_at = DateTimeField()
    sent_by = ListField(StringField())
    sent_to = ListField(JsonField())
Example #14
0
class Issue(Document):
    __collection__ = 'issues'

    id = UUIDField()
    title = StringField(required=True)
    content = StringField(required=True)
    level = StringField(required=True)
    date_added = DateTimeField(required=True, auto_now_on_insert=True)
    date_updated = DateTimeField(required=True, auto_now_on_update=True)
    user = ReferenceField(User)
class User(Document):
    __collection__ = 'users'

    index = IntField(required=True)
    email = StringField(required=True)
    first_name = StringField(
        db_field="whatever", max_length=50, default=lambda: "Bernardo"
    )
    last_name = StringField(max_length=50, default="Heynemann")
    is_admin = BooleanField(default=True)
    website = URLField(default="http://google.com/")
    updated_at = DateTimeField(
        required=True, auto_now_on_insert=True, auto_now_on_update=True
    )
    embedded = EmbeddedDocumentField(
        EmbeddedDocument, db_field="embedded_document"
    )
    nullable = EmbeddedDocumentField(
        EmbeddedDocument, db_field="nullable_embedded_document"
    )
    numbers = ListField(IntField())

    posts = ListField(ReferenceField(reference_document_type=Post))

    def __repr__(self):
        return "%s %s <%s>" % (self.first_name, self.last_name, self.email)
Example #16
0
class User(Document):
    __collection__ = 'users'

    id = UUIDField()
    name = StringField()
    email = EmailField(required=True, unique=True)
    password = StringField(required=True)
    date_added = DateTimeField(required=True, auto_now_on_insert=True)
Example #17
0
class Message(BaseDocument):
    # 消息内容
    title = StringField(max_length=64)
    content = StringField(max_length=500)
    comment = StringField(max_length=200)
    # 发送信息
    sent_from = JsonField()
    sent_at = DateTimeField()
    sent_by = ListField(StringField())
    sent_to = ListField(JsonField())
    next_sent_at = DateTimeField()
    # 管理信息
    created_at = DateTimeField(auto_now_on_insert=True)
    # created_by = ReferenceField()
    updated_at = DateTimeField(auto_now_on_insert=True,
                               auto_now_on_update=True)
    status = StringField(max_length=32, default=MessageStatusEnum('未发送').name)
    configure = JsonField()
    log = ListField(JsonField())
    is_active = BooleanField(default=True)

    @classmethod
    def validate_values(cls, dic, allow_cover=True):
        validated = super(Message, cls).validate_values(dic, allow_cover)
        schedule = validated['configure'].get('schedule',
                                              DefaultMessageSchedule)
        customized = validated['configure'].get('customized', [])
        if schedule == 'once':
            pass
        elif schedule == 'customized' and customized:
            sent_at = validated.get('sent_at')
            validated['next_sent_at'] = get_next_day(sent_at, customized,
                                                     schedule)
        else:
            sent_at = validated.get('sent_at')
            validated['next_sent_at'] = get_next_day(sent_at, 1, schedule)
        return validated

    @staticmethod
    async def ir_cron():
        with open('/tmp/wodeshijie', 'a+') as f:
            for m in await Message.objects.find_all():
                f.write('%s \n' % m.title)
        return True
Example #18
0
class User(Document):
    email = StringField(required=True)
    first_name = StringField(max_length=50, default=lambda: "Bernardo")
    last_name = StringField(max_length=50, default="Heynemann")
    is_admin = BooleanField(default=True)
    website = URLField(default="http://google.com/")
    updated_at = DateTimeField(required=True, auto_now_on_insert=True, auto_now_on_update=True)

    def __repr__(self):
        return "%s %s <%s>" % (self.first_name, self.last_name, self.email)
Example #19
0
class User(Document):
    __collection__ = "AggregationUser"

    email = StringField(required=True)
    first_name = StringField(max_length=50, default=lambda: "Bernardo")
    last_name = StringField(max_length=50, default="Heynemann")
    is_admin = BooleanField(default=True)
    updated_at = DateTimeField(required=True,
                               auto_now_on_insert=True,
                               auto_now_on_update=True)
    number_of_documents = IntField()
    list_items = ListField(IntField())
Example #20
0
class User(BaseDocument):
    mobile = StringField(required=True)
    password = StringField(required=True)
    nickname = StringField(required=True)
    gender = IntField(required=True, default=1)
    description = StringField()
    avatar_url = StringField()

    school_id = ReferenceField(reference_document_type=School)
    like_count = IntField(required=True, default=0)
    follower_count = IntField(required=True, default=0)
    following_count = IntField(required=True, default=0)

    create_time = DateTimeField(required=True,
                                auto_now_on_insert=True,
                                auto_now_on_update=False)

    def to_dict(self):
        data = super(User, self).to_dict()
        del data['password']
        return data
Example #21
0
class Comment(Document):
    user = ReferenceField(reference_document_type=User)
    lesson = ReferenceField('Lesson')
    #user_picture_url
    text = StringField(required=True)
    time = DateTimeField()
Example #22
0
 class Child(Document):
     __collection__ = "InOperatorTest"
     dt = DateTimeField()
 class Model(Document):
     created = DateTimeField(
         auto_now_on_insert=True, auto_now_on_update=True
     )
    def test_to_son_with_auto_insert_utc(self):
        dt = datetime.now(utc)
        field = DateTimeField(auto_now_on_insert=True, tz=utc)

        expect(field.to_son(field.get_value(None))).to_be_greater_or_equal_to(dt)
        expect(field.get_value(None).tzinfo).to_equal(utc)
 def test_create_datetime_field(self):
     field = DateTimeField(db_field="test")
     expect(field.db_field).to_equal("test")
    def test_from_son(self):
        field = DateTimeField()

        dt = datetime(2010, 11, 12, 13, 14, 15)

        expect(field.from_son("2010-11-12-13-14-15")).to_equal(dt)
    def test_to_son(self):
        field = DateTimeField()

        dt = datetime(2010, 11, 12, 13, 14, 15)

        expect(field.to_son(dt)).to_equal("2010-11-12-13-14-15")
 def test_to_son_with_auto_insert_and_given_value(self):
     field = DateTimeField(auto_now_on_insert=True)
     dt = datetime(2010, 11, 12, 13, 14, 15)
     expect(field.to_son(field.get_value(dt))).to_equal(dt)
     expect(field.get_value(None).tzinfo).to_equal(None)
Example #29
0
    def test_to_son_with_auto_insert(self):
        dt = datetime.now()
        field = DateTimeField(auto_now_on_insert=True)

        expect(field.to_son(field.get_value(None))).to_be_greater_or_equal_to(dt)
 def test_to_son_with_auto_insert_and_given_value_utc(self):
     field = DateTimeField(auto_now_on_insert=True, tz=utc)
     dt = datetime(2010, 11, 12, 13, 14, 15)
     dt_utc = dt.replace(tzinfo=utc)
     expect(field.to_son(field.get_value(dt))).to_equal(dt_utc)
    def test_from_son(self):
        field = DateTimeField()

        dt = datetime(2010, 11, 12, 13, 14, 15)

        expect(field.from_son(dt)).to_equal(dt)
 def test_to_son_with_auto_insert_and_given_value(self):
     field = DateTimeField(auto_now_on_insert=True)
     dt = datetime(2010, 11, 12, 13, 14, 15)
     expect(field.to_son(field.get_value(dt))).to_equal(dt)
     expect(field.get_value(None).tzinfo).to_equal(None)
 def test_to_son_with_auto_insert_and_given_value_utc(self):
     field = DateTimeField(auto_now_on_insert=True, tz=utc)
     dt = datetime(2010, 11, 12, 13, 14, 15)
     dt_utc = dt.replace(tzinfo=utc)
     expect(field.to_son(field.get_value(dt))).to_equal(dt_utc)