# HG changeset patch # User Martin von Zweigbergk # Date 2020-08-05 21:19:42 # Node ID 1a4f925f72c3786ab1e659400ae4351a74d20f00 # Parent c37ab438ff314d6f240c2a4d72a872a004517e21 hgweb: enable reading styles from resources in frozen binaries All we need to do to read styles from resources is to pass the file-like object we get from `open_template()` on to `frommapfile()`. This takes the number of failing tests with PyOxidizer from 62 to 54. Differential Revision: https://phab.mercurial-scm.org/D8901 diff --git a/mercurial/hgweb/hgweb_mod.py b/mercurial/hgweb/hgweb_mod.py --- a/mercurial/hgweb/hgweb_mod.py +++ b/mercurial/hgweb/hgweb_mod.py @@ -80,7 +80,7 @@ def _stylemap(styles, path=None): for location in locations: mapfile, fp = templater.open_template(location, path) if mapfile: - return style, mapfile + return style, mapfile, fp raise RuntimeError(b"No hgweb templates found in %r" % path) @@ -180,7 +180,9 @@ class requestcontext(object): # figure out which style to use vars = {} - styles, (style, mapfile) = getstyle(req, self.config, self.templatepath) + styles, (style, mapfile, fp) = getstyle( + req, self.config, self.templatepath + ) if style == styles[0]: vars[b'style'] = style @@ -223,10 +225,9 @@ class requestcontext(object): yield self.config(b'web', b'motd') tres = formatter.templateresources(self.repo.ui, self.repo) - tmpl = templater.templater.frommapfile( - mapfile, filters=filters, defaults=defaults, resources=tres + return templater.templater.frommapfile( + mapfile, fp=fp, filters=filters, defaults=defaults, resources=tres ) - return tmpl def sendtemplate(self, name, **kwargs): """Helper function to send a response generated from a template.""" diff --git a/mercurial/hgweb/hgwebdir_mod.py b/mercurial/hgweb/hgwebdir_mod.py --- a/mercurial/hgweb/hgwebdir_mod.py +++ b/mercurial/hgweb/hgwebdir_mod.py @@ -542,7 +542,7 @@ class hgwebdir(object): return self.ui.config(*args, **kwargs) vars = {} - styles, (style, mapfile) = hgweb_mod.getstyle( + styles, (style, mapfile, fp) = hgweb_mod.getstyle( req, config, self.templatepath ) if style == styles[0]: @@ -577,5 +577,6 @@ class hgwebdir(object): else: yield config(b'web', b'motd') - tmpl = templater.templater.frommapfile(mapfile, defaults=defaults) - return tmpl + return templater.templater.frommapfile( + mapfile, fp=fp, defaults=defaults + )