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

Side by Side Diff: chrome/common/extensions/docs/server2/fake_url_fetcher.py

Issue 417163004: Docserver: Update Future.Then() to be more Promise-like (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add tests Created 6 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 unified diff | Download patch
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import os 5 import os
6 import posixpath 6 import posixpath
7 7
8 from future import Future 8 from future import Future
9 from path_util import AssertIsDirectory, IsDirectory 9 from path_util import AssertIsDirectory, IsDirectory
10 10
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 def __init__(self, fetcher): 122 def __init__(self, fetcher):
123 self._fetcher = fetcher 123 self._fetcher = fetcher
124 self.Reset() 124 self.Reset()
125 125
126 def Fetch(self, url, **kwargs): 126 def Fetch(self, url, **kwargs):
127 self._fetch_count += 1 127 self._fetch_count += 1
128 return self._fetcher.Fetch(url, **kwargs) 128 return self._fetcher.Fetch(url, **kwargs)
129 129
130 def FetchAsync(self, url, **kwargs): 130 def FetchAsync(self, url, **kwargs):
131 self._fetch_async_count += 1 131 self._fetch_async_count += 1
132 future = self._fetcher.FetchAsync(url, **kwargs) 132 def next(result):
133 def resolve():
134 self._fetch_resolve_count += 1 133 self._fetch_resolve_count += 1
135 return future.Get() 134 return result
136 return Future(callback=resolve) 135 return self._fetcher.FetchAsync(url, **kwargs).Then(next)
137 136
138 def CheckAndReset(self, 137 def CheckAndReset(self,
139 fetch_count=0, 138 fetch_count=0,
140 fetch_async_count=0, 139 fetch_async_count=0,
141 fetch_resolve_count=0): 140 fetch_resolve_count=0):
142 errors = [] 141 errors = []
143 for desc, expected, actual in ( 142 for desc, expected, actual in (
144 ('fetch_count', fetch_count, self._fetch_count), 143 ('fetch_count', fetch_count, self._fetch_count),
145 ('fetch_async_count', fetch_async_count, self._fetch_async_count), 144 ('fetch_async_count', fetch_async_count, self._fetch_async_count),
146 ('fetch_resolve_count', fetch_resolve_count, 145 ('fetch_resolve_count', fetch_resolve_count,
147 self._fetch_resolve_count)): 146 self._fetch_resolve_count)):
148 if actual != expected: 147 if actual != expected:
149 errors.append('%s: expected %s got %s' % (desc, expected, actual)) 148 errors.append('%s: expected %s got %s' % (desc, expected, actual))
150 try: 149 try:
151 return (len(errors) == 0, ', '.join(errors)) 150 return (len(errors) == 0, ', '.join(errors))
152 finally: 151 finally:
153 self.Reset() 152 self.Reset()
154 153
155 def Reset(self): 154 def Reset(self):
156 self._fetch_count = 0 155 self._fetch_count = 0
157 self._fetch_async_count = 0 156 self._fetch_async_count = 0
158 self._fetch_resolve_count = 0 157 self._fetch_resolve_count = 0
OLDNEW
« no previous file with comments | « chrome/common/extensions/docs/server2/chroot_file_system.py ('k') | chrome/common/extensions/docs/server2/file_system.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698