hgweb: enable reading styles from resources in frozen binaries
authorMartin von Zweigbergk <martinvonz@google.com>
Wed, 05 Aug 2020 14:19:42 -0700
changeset 45318 1a4f925f72c3
parent 45317 c37ab438ff31
child 45319 6e6fe826ba69
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
mercurial/hgweb/hgweb_mod.py
mercurial/hgweb/hgwebdir_mod.py
--- a/mercurial/hgweb/hgweb_mod.py	Wed Aug 05 14:03:45 2020 -0700
+++ b/mercurial/hgweb/hgweb_mod.py	Wed Aug 05 14:19:42 2020 -0700
@@ -80,7 +80,7 @@
         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 @@
         # 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 @@
             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."""
--- a/mercurial/hgweb/hgwebdir_mod.py	Wed Aug 05 14:03:45 2020 -0700
+++ b/mercurial/hgweb/hgwebdir_mod.py	Wed Aug 05 14:19:42 2020 -0700
@@ -542,7 +542,7 @@
             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 @@
             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
+        )