fix: render db engine with password intact, for installer config
not sure when things changed, pretty sure this is a new thing? hopefully doesn't break anything since the installer is likely dealing with "latest" sqlalchemy
This commit is contained in:
parent
2713ad72e5
commit
18c23ce0ce
2 changed files with 22 additions and 1 deletions
|
|
@ -298,6 +298,9 @@ class InstallHandler(GenericHandler):
|
|||
"""
|
||||
envname = os.path.basename(sys.prefix)
|
||||
appdir = os.path.join(sys.prefix, "app")
|
||||
dburl = dbinfo["dburl"]
|
||||
if not isinstance(dburl, str):
|
||||
dburl = dburl.render_as_string(hide_password=False)
|
||||
context = {
|
||||
"envdir": sys.prefix,
|
||||
"envname": envname,
|
||||
|
|
@ -305,7 +308,7 @@ class InstallHandler(GenericHandler):
|
|||
"app_title": self.app_title,
|
||||
"pypi_name": self.pypi_name,
|
||||
"appdir": appdir,
|
||||
"db_url": dbinfo["dburl"],
|
||||
"db_url": dburl,
|
||||
"egg_name": self.egg_name,
|
||||
}
|
||||
context.update(kwargs)
|
||||
|
|
|
|||
|
|
@ -170,6 +170,8 @@ class TestInstallHandler(ConfigTestCase):
|
|||
|
||||
def test_make_template_context(self):
|
||||
handler = self.make_handler()
|
||||
|
||||
# can handle dburl as string
|
||||
dbinfo = {"dburl": "sqlite:///poser.sqlite"}
|
||||
context = handler.make_template_context(dbinfo)
|
||||
self.assertEqual(context["envdir"], sys.prefix)
|
||||
|
|
@ -180,6 +182,22 @@ class TestInstallHandler(ConfigTestCase):
|
|||
self.assertEqual(context["appdir"], os.path.join(sys.prefix, "app"))
|
||||
self.assertEqual(context["db_url"], "sqlite:///poser.sqlite")
|
||||
|
||||
try:
|
||||
import sqlalchemy as sa
|
||||
except ImportError:
|
||||
pytest.skip("remainder of test is not relevant without sqlalchemy")
|
||||
|
||||
# but also can handle dburl as object
|
||||
dbinfo = {"dburl": sa.create_engine("sqlite:///poser.sqlite").url}
|
||||
context = handler.make_template_context(dbinfo)
|
||||
self.assertEqual(context["envdir"], sys.prefix)
|
||||
self.assertEqual(context["pkg_name"], "poser")
|
||||
self.assertEqual(context["app_title"], "poser")
|
||||
self.assertEqual(context["pypi_name"], "poser")
|
||||
self.assertEqual(context["egg_name"], "poser")
|
||||
self.assertEqual(context["appdir"], os.path.join(sys.prefix, "app"))
|
||||
self.assertEqual(context["db_url"], "sqlite:///poser.sqlite")
|
||||
|
||||
def test_make_appdir(self):
|
||||
handler = self.make_handler()
|
||||
handler.templates = TemplateLookup(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue