benim kod değiştirilen varlıklar için Model.put()
denilen testlerde iddia edebilmek istiyorum.Bir NDB varlığını veri deposundan nasıl yenilerim?
from google.appengine.ext import ndb
class MyModel(ndb.Model):
name = StringProperty(indexed=True)
text = StringProperty()
def update_entity(id, text):
entity = MyModel.get_by_id(id)
entity.text = text
# This is where entity.put() should happen but doesn't
Geçitler bu test: Maalesef, bazı önbelleğe alma devam böyle bu kodun bu gibi görünüyor
def test_updates_entity_in_datastore(unittest.TestCase):
name = 'Beartato'
entity = MyModel(id=12345L, name=name, text=None)
text = 'foo bar baz'
update_entity(entity.key.id(), text)
new_entity = entity.key.get() # Doesn't do anything, apparently
# new_entity = entity.query(MyModel.name == name).fetch()[0] # Same
assert new_entity.text == text
zaman isterim gerçekten oldukça yaptım değil, gerçek dünyada beri, update_entity
, gerçekte veri mağazasındaki hiçbir şeyi değiştirmeyecek. Burun, datastore_v3_stub ve memcache_stub kullanma
.
'a uygulanabilirler. Sorunun açıklığa kavuşturulması için düzenlenebilir - bu, hiçbirşeyi değiştirmez. – brandones
Açıkçası bir ID belirlediğiniz ve stub'un bir şekilde önbelleğe nesneyi koyduğunuzdan kaynaklandığını düşünüyorum. Kimliği ayarlamazsanız, Anahtar Yok olmalıdır. – Nabla