Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(600)

Unified Diff: pkg/appengine/test/dart-python--datastore-compatibility/python/main.py

Issue 804973002: Add appengine/gcloud/mustache dependencies. (Closed) Base URL: git@github.com:dart-lang/pub-dartlang-dart.git@master
Patch Set: Added AUTHORS/LICENSE/PATENTS files Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/appengine/test/dart-python--datastore-compatibility/python/main.py
diff --git a/pkg/appengine/test/dart-python--datastore-compatibility/python/main.py b/pkg/appengine/test/dart-python--datastore-compatibility/python/main.py
new file mode 100644
index 0000000000000000000000000000000000000000..593ecdc0aced2b3722634aed007d4d4fd1333f47
--- /dev/null
+++ b/pkg/appengine/test/dart-python--datastore-compatibility/python/main.py
@@ -0,0 +1,90 @@
+#!/usr/bin/env python
+
+import datetime
+import unittest
+
+from google.appengine.ext import ndb
+from google.appengine.ext.ndb import metadata
+
+class NormalModel(ndb.Model):
+ boolProp = ndb.BooleanProperty()
+ intProp = ndb.IntegerProperty()
+ stringProp = ndb.StringProperty()
+ keyProp = ndb.KeyProperty()
+ blobProp = ndb.BlobProperty()
+ dateProp = ndb.DateTimeProperty()
+
+ stringListProp = ndb.StringProperty(repeated = True)
+
+
+class ExpandoModel(ndb.Expando):
+ boolProp = ndb.BooleanProperty()
+ intProp = ndb.IntegerProperty()
+ stringProp = ndb.StringProperty()
+ keyProp = ndb.KeyProperty()
+ blobProp = ndb.BlobProperty()
+ dateProp = ndb.DateTimeProperty()
+
+ stringListProp = ndb.StringProperty(repeated = True)
+
+def verifyData(model, num):
+ assert model.boolProp == (num % 2 == 0)
+ assert model.intProp == num + 42
+ assert model.stringProp == 'foobar %d' % num
+ assert model.keyProp == ndb.Key('NormalModel', num + 10)
+ assert model.blobProp == '\x01\x02\x03\x04%d' % num
+
+ # Different
+ assert model.dateProp == datetime.datetime(2014, 12, 31, num)
+
+ assert model.stringListProp
+ stringList = model.stringListProp
+ assert len(stringList) == 3
+ assert stringList[0] == 'a%d' % num
+ assert stringList[1] == 'b%d' % num
+ assert stringList[2] == 'c%d' % num
+
+def fillData(model, num):
+ model.boolProp = (num % 2 == 0)
+ model.intProp = num + 42
+ model.stringProp = 'foobar %d' % num
+ model.keyProp = ndb.Key('NormalModel', num + 10)
+ model.blobProp = '\x01\x02\x03\x04%d' % num
+ model.dateProp = datetime.datetime(2014, 12, 31, num)
+ model.stringListProp = ['a%d' % num, 'b%d' % num, 'c%d' % num]
+
+
+def debug_showKinds():
+ print 'kinds:'
+ for key in metadata.get_kinds():
+ print ' - ', key
+
+def runTests(writing_mode):
+ key = ndb.Key('NormalModel', 99)
+ ekey = ndb.Key('ExpandoModel', 102, parent=key)
+
+ if writing_mode:
+ model = NormalModel(key=key)
+ em = ExpandoModel(key=ekey)
+
+ fillData(model, 1)
+ fillData(em, 5)
+
+ model.put()
+ em.put()
+
+ if not writing_mode:
+ models = NormalModel.query(NormalModel.key == key).fetch()
+ ems = ExpandoModel.query(ExpandoModel.key == ekey).fetch()
+
+ for m, id, i in [(models, 99, 1),
+ (ems, 102, 5)]:
+ assert len(m) == 1
+ model = m[0]
+ assert model
+ assert model.key.id() == id
+ verifyData(model, i)
+ assert ems[0].key.parent() == key
+
+ print 'All tests ran'
+

Powered by Google App Engine
This is Rietveld 408576698