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(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)
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(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 ExDataRecord(MyDocument): """ 实验数据的记录表 """ __collection__ = "ex_data_record" # --------------数据状态值记录----------- record_status = StringField( max_length=64) # 数据的状态:reported,filted,experiment # --------------数据发现和登记期----------- custom_name = StringField(max_length=256) # 用户名称 captcha_id = StringField(max_length=64) event_start_time = DateTimeField() # weblog产生开始时间 event_end_time = DateTimeField() # weblog产生结束时间 event_reporter = StringField(max_length=256) # 事件汇报人 event_report_time = DateTimeField() # 事件汇报时间 track_class = StringField(max_length=64) js_version = StringField(max_length=16) js_tag_page = StringField(max_length=2048) # 在bitbucket或者tower中的当前版本的修改标记 css_version = StringField(max_length=16) css_tag_page = StringField(max_length=2048) # 在bitbucket或者tower中的当前版本的修改标记 # --------------数据过滤的采集备案期----------- data_collection_name = StringField(max_length=256) producers = StringField(max_length=256) ex_user = StringField(max_length=256) # 数据收集人 action_time = DateTimeField() # 数据备案时间 # event_time = DateTimeField() file_name = StringField(max_length=64) file_path = StringField(max_length=2048) # 实验数据文件所在路径,以FTP的方式来共享 file_size = IntField() record_cnt = IntField() # 记录的数目 # --------------数据实验期----------- researcher = StringField(max_length=256) # 数据实验人 researche_time = DateTimeField() # 数据实验时间 research_result = StringField(max_length=10240) # 验证处理结果
class User(Document): 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()) def __repr__(self): return "%s %s <%s>" % (self.first_name, self.last_name, self.email)
class MobileSafetyData( OrgUserDataDocument, HttpDocument, # OperationDocument ): """ 手机安全数据 """ __collection__ = 'mobile_safety_data' bs = StringField() # charging battery status br = FloatField() # 电池状态,"0.36",battery rate carrier = StringField() # 运营商,"\U4e2d\U56fd\U8054\U901a"; cellular = StringField() # LTE; coun = StringField() # CN; dn = StringField() # "iPhone 6s" idf = StringField() # 85BA4C903C16F7631; imei = StringField() # 000000000000000; # ip = StringField() lang = StringField() # "en-CN"; sc_w = IntField() # screen width sc_h = IntField() # screen height # mScreen = StringField() # 1242x2208; dType = StringField() # iPhone; mac = StringField() # "02:00:00:00"; dModel = StringField() # "iPhone8,2"; osType = StringField() # ios; # osVerInt =StringField()# "9.3.2"; osVerRelease = StringField() # "9.3.2"; route = StringField() # "24:3:b0"; ssid = StringField() # MyWIFI; # utc = StringField() # "2016-07-18 06:51:53"; uuid = StringField() # "513DE79D-F20AB2F685A"; c_time = DateTimeField() # 客户端时间,东8时区
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.to_son(field.get_value(dt))).to_be_greater_or_equal_to(now)
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_from_son(self): field = DateTimeField() dt = datetime(2010, 11, 12, 13, 14, 15) expect(field.from_son(dt)).to_equal(dt)
def test_create_datetime_field(self): field = DateTimeField(db_field="test") expect(field.db_field).to_equal("test")
class Child(Document): __collection__ = "InOperatorTest" dt = DateTimeField()