##// END OF EJS Templates
py3: byteify tests/wireprotosimplecache.py...
Pulkit Goyal -
r40254:b27bcf81 default
parent child Browse files
Show More
@@ -26,16 +26,16 b' CACHE = None'
26 configtable = {}
26 configtable = {}
27 configitem = registrar.configitem(configtable)
27 configitem = registrar.configitem(configtable)
28
28
29 configitem('simplecache', 'cacheapi',
29 configitem(b'simplecache', b'cacheapi',
30 default=False)
30 default=False)
31 configitem('simplecache', 'cacheobjects',
31 configitem(b'simplecache', b'cacheobjects',
32 default=False)
32 default=False)
33 configitem('simplecache', 'redirectsfile',
33 configitem(b'simplecache', b'redirectsfile',
34 default=None)
34 default=None)
35
35
36 # API handler that makes cached keys available.
36 # API handler that makes cached keys available.
37 def handlecacherequest(rctx, req, res, checkperm, urlparts):
37 def handlecacherequest(rctx, req, res, checkperm, urlparts):
38 if rctx.repo.ui.configbool('simplecache', 'cacheobjects'):
38 if rctx.repo.ui.configbool(b'simplecache', b'cacheobjects'):
39 res.status = b'500 Internal Server Error'
39 res.status = b'500 Internal Server Error'
40 res.setbodybytes(b'cacheobjects not supported for api server')
40 res.setbodybytes(b'cacheobjects not supported for api server')
41 return
41 return
@@ -62,9 +62,9 b' def cachedescriptor(req, repo):'
62 return {}
62 return {}
63
63
64 wireprotoserver.API_HANDLERS[b'simplecache'] = {
64 wireprotoserver.API_HANDLERS[b'simplecache'] = {
65 'config': (b'simplecache', b'cacheapi'),
65 b'config': (b'simplecache', b'cacheapi'),
66 'handler': handlecacherequest,
66 b'handler': handlecacherequest,
67 'apidescriptor': cachedescriptor,
67 b'apidescriptor': cachedescriptor,
68 }
68 }
69
69
70 @interfaceutil.implementer(repository.iwireprotocolcommandcacher)
70 @interfaceutil.implementer(repository.iwireprotocolcommandcacher)
@@ -77,18 +77,18 b' class memorycacher(object):'
77 self.redirecthashes = redirecthashes
77 self.redirecthashes = redirecthashes
78 self.req = req
78 self.req = req
79 self.key = None
79 self.key = None
80 self.cacheobjects = ui.configbool('simplecache', 'cacheobjects')
80 self.cacheobjects = ui.configbool(b'simplecache', b'cacheobjects')
81 self.cacheapi = ui.configbool('simplecache', 'cacheapi')
81 self.cacheapi = ui.configbool(b'simplecache', b'cacheapi')
82 self.buffered = []
82 self.buffered = []
83
83
84 ui.log('simplecache', 'cacher constructed for %s\n', command)
84 ui.log(b'simplecache', b'cacher constructed for %s\n', command)
85
85
86 def __enter__(self):
86 def __enter__(self):
87 return self
87 return self
88
88
89 def __exit__(self, exctype, excvalue, exctb):
89 def __exit__(self, exctype, excvalue, exctb):
90 if exctype:
90 if exctype:
91 self.ui.log('simplecache', 'cacher exiting due to error\n')
91 self.ui.log(b'simplecache', b'cacher exiting due to error\n')
92
92
93 def adjustcachekeystate(self, state):
93 def adjustcachekeystate(self, state):
94 # Needed in order to make tests deterministic. Don't copy this
94 # Needed in order to make tests deterministic. Don't copy this
@@ -101,11 +101,11 b' class memorycacher(object):'
101
101
102 def lookup(self):
102 def lookup(self):
103 if self.key not in CACHE:
103 if self.key not in CACHE:
104 self.ui.log('simplecache', 'cache miss for %s\n', self.key)
104 self.ui.log(b'simplecache', b'cache miss for %s\n', self.key)
105 return None
105 return None
106
106
107 entry = CACHE[self.key]
107 entry = CACHE[self.key]
108 self.ui.log('simplecache', 'cache hit for %s\n', self.key)
108 self.ui.log(b'simplecache', b'cache hit for %s\n', self.key)
109
109
110 redirectable = True
110 redirectable = True
111
111
@@ -130,21 +130,21 b' class memorycacher(object):'
130 url = b'%s/%s' % (self.req.baseurl, b'/'.join(paths))
130 url = b'%s/%s' % (self.req.baseurl, b'/'.join(paths))
131
131
132 #url = b'http://example.com/%s' % self.key
132 #url = b'http://example.com/%s' % self.key
133 self.ui.log('simplecache', 'sending content redirect for %s to '
133 self.ui.log(b'simplecache', b'sending content redirect for %s to '
134 '%s\n', self.key, url)
134 b'%s\n', self.key, url)
135 response = wireprototypes.alternatelocationresponse(
135 response = wireprototypes.alternatelocationresponse(
136 url=url,
136 url=url,
137 mediatype=b'application/mercurial-cbor')
137 mediatype=b'application/mercurial-cbor')
138
138
139 return {'objs': [response]}
139 return {b'objs': [response]}
140
140
141 if self.cacheobjects:
141 if self.cacheobjects:
142 return {
142 return {
143 'objs': entry,
143 b'objs': entry,
144 }
144 }
145 else:
145 else:
146 return {
146 return {
147 'objs': [wireprototypes.encodedresponse(entry)],
147 b'objs': [wireprototypes.encodedresponse(entry)],
148 }
148 }
149
149
150 def onobject(self, obj):
150 def onobject(self, obj):
@@ -156,7 +156,7 b' class memorycacher(object):'
156 yield obj
156 yield obj
157
157
158 def onfinished(self):
158 def onfinished(self):
159 self.ui.log('simplecache', 'storing cache entry for %s\n', self.key)
159 self.ui.log(b'simplecache', b'storing cache entry for %s\n', self.key)
160 if self.cacheobjects:
160 if self.cacheobjects:
161 CACHE[self.key] = self.buffered
161 CACHE[self.key] = self.buffered
162 else:
162 else:
@@ -170,7 +170,7 b' def makeresponsecacher(orig, repo, proto'
170 redirecthashes, proto._req)
170 redirecthashes, proto._req)
171
171
172 def loadredirecttargets(ui):
172 def loadredirecttargets(ui):
173 path = ui.config('simplecache', 'redirectsfile')
173 path = ui.config(b'simplecache', b'redirectsfile')
174 if not path:
174 if not path:
175 return []
175 return []
176
176
@@ -187,7 +187,7 b' def extsetup(ui):'
187
187
188 CACHE = util.lrucachedict(10000)
188 CACHE = util.lrucachedict(10000)
189
189
190 extensions.wrapfunction(wireprotov2server, 'makeresponsecacher',
190 extensions.wrapfunction(wireprotov2server, b'makeresponsecacher',
191 makeresponsecacher)
191 makeresponsecacher)
192 extensions.wrapfunction(wireprotov2server, 'getadvertisedredirecttargets',
192 extensions.wrapfunction(wireprotov2server, b'getadvertisedredirecttargets',
193 getadvertisedredirecttargets)
193 getadvertisedredirecttargets)
General Comments 0
You need to be logged in to leave comments. Login now