如何覆盖时间戳字段以进行单元测试?

时间:2013-10-15 10:38:51

标签: python google-app-engine unit-testing

class Record(ndb.Model):
    notes = ndb.TextProperty()
    last_updated = ndb.DateTimeProperty(auto_now=True)

单元测试设置的一部分:

record2 = Record()    
# trying to set the last_updated timestamp to a previous date
record2.last_updated = previous_date

record2.put()
#after saving it, the timestamp is back to today's date

因此我无法模仿我的单元测试的旧记录。如何在不更改模型的情况下覆盖该字段?

1 个答案:

答案 0 :(得分:2)

来自docs

  

可以使用auto_now_add=True覆盖属性的值,但不能覆盖auto_now=True的属性值。在写入实体之前不会生成自动值;也就是说,这些选项不提供动态默认值。 (这些细节与旧的db API不同。)