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)
|
envname = os.path.basename(sys.prefix)
|
||||||
appdir = os.path.join(sys.prefix, "app")
|
appdir = os.path.join(sys.prefix, "app")
|
||||||
|
dburl = dbinfo["dburl"]
|
||||||
|
if not isinstance(dburl, str):
|
||||||
|
dburl = dburl.render_as_string(hide_password=False)
|
||||||
context = {
|
context = {
|
||||||
"envdir": sys.prefix,
|
"envdir": sys.prefix,
|
||||||
"envname": envname,
|
"envname": envname,
|
||||||
|
|
@ -305,7 +308,7 @@ class InstallHandler(GenericHandler):
|
||||||
"app_title": self.app_title,
|
"app_title": self.app_title,
|
||||||
"pypi_name": self.pypi_name,
|
"pypi_name": self.pypi_name,
|
||||||
"appdir": appdir,
|
"appdir": appdir,
|
||||||
"db_url": dbinfo["dburl"],
|
"db_url": dburl,
|
||||||
"egg_name": self.egg_name,
|
"egg_name": self.egg_name,
|
||||||
}
|
}
|
||||||
context.update(kwargs)
|
context.update(kwargs)
|
||||||
|
|
|
||||||
|
|
@ -170,6 +170,8 @@ class TestInstallHandler(ConfigTestCase):
|
||||||
|
|
||||||
def test_make_template_context(self):
|
def test_make_template_context(self):
|
||||||
handler = self.make_handler()
|
handler = self.make_handler()
|
||||||
|
|
||||||
|
# can handle dburl as string
|
||||||
dbinfo = {"dburl": "sqlite:///poser.sqlite"}
|
dbinfo = {"dburl": "sqlite:///poser.sqlite"}
|
||||||
context = handler.make_template_context(dbinfo)
|
context = handler.make_template_context(dbinfo)
|
||||||
self.assertEqual(context["envdir"], sys.prefix)
|
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["appdir"], os.path.join(sys.prefix, "app"))
|
||||||
self.assertEqual(context["db_url"], "sqlite:///poser.sqlite")
|
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):
|
def test_make_appdir(self):
|
||||||
handler = self.make_handler()
|
handler = self.make_handler()
|
||||||
handler.templates = TemplateLookup(
|
handler.templates = TemplateLookup(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue