Merge pull request #1120 from DavidMStraub/main

This commit is contained in:
Nick Hall 2022-02-14 21:55:49 +00:00
commit 1d56e7d47a
4 changed files with 52 additions and 1 deletions

31
gramps/__main__.py Normal file
View File

@ -0,0 +1,31 @@
#! /usr/bin/env python3
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2012 Benny Malengier
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#
"""This is a stub to start Gramps.
It is provided to be able to start gramps as `python3 -m gramps`,
e.g. in a virtual environment.
"""
import gramps.grampsapp as app
if __name__ == "__main__":
app.main()

View File

@ -54,7 +54,7 @@ from gramps.gen.const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
_HELP = _("""
Usage: gramps.py [OPTION...]
Usage: gramps [OPTION...]
--load-modules=MODULE1,MODULE2,... Dynamic modules to load
Help options

View File

@ -94,6 +94,25 @@ class Test(unittest.TestCase):
g = re.search("INDI", content)
self.assertTrue(g, "found 'INDI' in output file")
def test2_exec_cli_m(self):
"""Test the `python -m gramps` way to run the CLI."""
ifile = min1r
ofile = out_ged
gcmd = [sys.executable, "-m", "gramps", "-i", ifile, "-e", ofile]
process = subprocess.Popen(gcmd,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
result_str, err_str = process.communicate()
self.assertEqual(process.returncode, 0,
"executed CLI command %r" % gcmd)
# simple validation o output
self.assertTrue(os.path.isfile(ofile), "output file created")
with open(ofile) as f:
content = f.read()
g = re.search("INDI", content)
self.assertTrue(g, "found 'INDI' in output file")
# this verifies that files in the temporary "import dir"
# get cleaned before (and after) running a CLI
# (eg cleanout stale files from prior crash-runs)

View File

@ -8,6 +8,7 @@ setup.py
# gramps
#
gramps/__init__.py
gramps/__main__.py
gramps/version.py
#
# cli