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

Unified Diff: chrome/common/extensions/docs/server2/appengine_wrappers.py

Issue 10871002: Extensions Docs Server: Testing GithubFileSystem and cron jobs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 months 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: chrome/common/extensions/docs/server2/appengine_wrappers.py
diff --git a/chrome/common/extensions/docs/server2/appengine_wrappers.py b/chrome/common/extensions/docs/server2/appengine_wrappers.py
index 5366e322aab36e29ee9ef66779b8c08aaf2485a2..16f1803b92d82a4f76e2cbf7e9ff54f8639bd895 100644
--- a/chrome/common/extensions/docs/server2/appengine_wrappers.py
+++ b/chrome/common/extensions/docs/server2/appengine_wrappers.py
@@ -14,6 +14,7 @@ try:
import google.appengine.api.urlfetch as urlfetch
except ImportError:
import re
+ from StringIO import StringIO
FAKE_URL_FETCHER_CONFIGURATION = None
@@ -67,8 +68,51 @@ except ImportError:
def __getattr__(self, attr):
raise NotImplementedError()
- blobstore = NotImplemented()
- files = NotImplemented()
+ BLOBS = {}
not at google - send to devlin 2012/08/22 13:57:58 _BLOBS?
cduvall 2012/08/22 17:20:43 Done.
+ KEY = 1
not at google - send to devlin 2012/08/22 13:57:58 can you put this on FakeFiles, and call it _next_b
cduvall 2012/08/22 17:20:43 Done.
+ class FakeBlobstore(object):
+ class BlobReader(object):
+ def __init__(self, blob_key):
+ self._data = BLOBS[blob_key].getvalue()
+
+ def read(self):
+ return self._data
+
+ blobstore = FakeBlobstore()
+
+ class FakeStringIO(StringIO):
not at google - send to devlin 2012/08/22 13:57:58 using just a normal StringIO isn't enough where th
cduvall 2012/08/22 17:20:43 Done.
+ def __init__(self, io):
+ self._io = io
+
+ def __exit__(self, *args):
+ pass
+
+ def write(self, data):
+ self._io.write(data)
+
+ def __enter__(self, *args):
+ return self._io
+
+ class FakeFiles(object):
+ class blobstore(object):
+ @staticmethod
+ def create():
+ global KEY
+ KEY += 1
+ return KEY
+
+ @staticmethod
+ def get_blob_key(filename):
+ return filename
+
+ def open(self, filename, mode):
+ BLOBS[filename] = StringIO()
+ return FakeStringIO(BLOBS[filename])
+
+ def finalize(self, filename):
+ pass
+
+ files = FakeFiles()
class InMemoryMemcache(object):
"""A fake memcache that does nothing.
@@ -88,6 +132,7 @@ except ImportError:
def delete(self, key, namespace):
return
+
memcache = InMemoryMemcache()
class webapp(object):
@@ -102,17 +147,32 @@ except ImportError:
self.request.path = path
class _Db_Result(object):
+ def __init__(self, data):
+ self._data = data
+
+ class _Result(object):
+ def __init__(self, value):
+ self.value = value
+
def get(self):
- return []
+ return self._Result(self._data)
+ DB = {}
not at google - send to devlin 2012/08/22 13:57:58 put on the db or Model class, call _store or somet
cduvall 2012/08/22 17:20:43 Done.
class db(object):
class StringProperty(object):
pass
class Model(object):
+ def __init__(self, key_='', value=''):
+ self._key = key_
+ self._value = value
+
@staticmethod
- def gql(*args):
- return _Db_Result()
+ def gql(query, key):
+ return _Db_Result(DB.get(key, None))
+
+ def put(self):
+ DB[self._key] = self._value
class BlobReferenceProperty(object):
pass

Powered by Google App Engine
This is Rietveld 408576698