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_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_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)
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)
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))
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())
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)
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)
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
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)
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())
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
class Comment(Document): user = ReferenceField(reference_document_type=User) lesson = ReferenceField('Lesson') #user_picture_url text = StringField(required=True) time = DateTimeField()
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)
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)