From e71b03e6c0ba77c225c0abeca0cb7582cf62fa8e Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Thu, 24 Nov 2016 13:58:52 +0100 Subject: [PATCH] Maps generation fixed for sqlite. fix #956 --- modoboa/admin/tests/test_mapfiles.py | 10 +++++++--- .../core/management/commands/generate_postfix_maps.py | 11 +++++++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/modoboa/admin/tests/test_mapfiles.py b/modoboa/admin/tests/test_mapfiles.py index 79f424176..255968353 100644 --- a/modoboa/admin/tests/test_mapfiles.py +++ b/modoboa/admin/tests/test_mapfiles.py @@ -42,9 +42,13 @@ class MapFilesTestCase(MapFilesTestCaseMixin, TestCase): dbsettings = settings.DATABASES["default"] for f in self.MAP_FILES: mapcontent = parse_map_file(os.path.join(self.workdir, f)) - self.assertEqual(mapcontent["user"], dbsettings["USER"]) - self.assertEqual(mapcontent["password"], dbsettings["PASSWORD"]) - self.assertEqual(mapcontent["dbname"], dbsettings["NAME"]) + if dbsettings["ENGINE"] == "django.db.backends.sqlite3": + self.assertEqual(mapcontent["dbpath"], dbsettings["NAME"]) + else: + self.assertEqual(mapcontent["user"], dbsettings["USER"]) + self.assertEqual( + mapcontent["password"], dbsettings["PASSWORD"]) + self.assertEqual(mapcontent["dbname"], dbsettings["NAME"]) # Now modify a file manually path = os.path.join(self.workdir, "sql-domains.cf") diff --git a/modoboa/core/management/commands/generate_postfix_maps.py b/modoboa/core/management/commands/generate_postfix_maps.py index bb3e915ab..65d85ac49 100644 --- a/modoboa/core/management/commands/generate_postfix_maps.py +++ b/modoboa/core/management/commands/generate_postfix_maps.py @@ -125,10 +125,13 @@ query = {{ query|safe }} mapcontent = utils.parse_map_file(fullpath) context = copy.deepcopy(context) context["dbtype"] = self.__checksums[mapobject.filename]["dbtype"] - context["dbuser"] = mapcontent["user"] - context["dbpass"] = mapcontent["password"] - context["dbname"] = mapcontent["dbname"] - context["dbhost"] = mapcontent["hosts"] + if context["dbtype"] == "sqlite": + context["dbname"] = mapcontent["dbpath"] + else: + context["dbuser"] = mapcontent["user"] + context["dbpass"] = mapcontent["password"] + context["dbname"] = mapcontent["dbname"] + context["dbhost"] = mapcontent["hosts"] content = self.get_template(context["dbtype"]).render( Context( dict(context.items(),