Need help resolving unit tests failures on Ubuntu (on WSL)

I’m running Gramps v5.2.0 from source on Ubuntu on WSL on Windows, both 24.04-preview and 22.04.4. In both cases I’m getting test failures - and I suspect there’s something about my environment which is causing them, but so far I haven’t figured out what that is, so any help would be appreciated. The code I’m testing includes @Nick-Hall open PR 1672.

  1. On Ubuntu 22.04.4 which was initially setup more than a year ago, there’s one failure:
  • FAIL: test_ged (gramps.plugins.test.exports_test.ExportControl.test_ged)
  1. On Ubuntu 24.04-preview which I just set up yesterday I see the same failure and one additional failure and one error.
  • FAIL: test_mediapath (gramps.gen.utils.test.file_test.FileTest.test_mediapath)

  • ERROR: test4_arbitrary_uncode_path (gramps.cli.test.cli_test.UnicodeTest.test4_arbitrary_uncode_path)

The issue with the test_ged UT looks like the diffs are related to timestamp and local path differences, not a real failure.

The issue with the other two feel like they have to do with my set up. When setting up the fresh Ubuntu 24.04-preview environment, installing build-dep step (sudo apt-get build-dep gramps) didn’t succeed so I installed dependencies one-by-one resolving errors until I got Gramps to run. However, this I might not have some additional dependencies which are needed by the tests.

Any help appreciated from the experts.

Command use to run these tests:

GRAMPS_RESOURCES=. python3 -m unittest gramps.cli.test.cli_test.UnicodeTest.test4_arbitrary_uncode_path gramps.gen.utils.test.file_test.FileTest.test_mediapath gramps.plugins.test.exports_test.ExportControl.test_ged

Output

======================================================================
ERROR: test4_arbitrary_uncode_path (gramps.cli.test.cli_test.UnicodeTest.test4_arbitrary_uncode_path)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/codefarmer/gramps-project/gramps/gramps/cli/test/cli_test.py", line 121, in setUp
    os.makedirs(self.newpath)
  File "<frozen os>", line 225, in makedirs
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 51-56: ordinal not in range(256)

======================================================================
FAIL: test_mediapath (gramps.gen.utils.test.file_test.FileTest.test_mediapath)
Test media path variables.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/codefarmer/gramps-project/gramps/gramps/gen/utils/test/file_test.py", line 73, in test_mediapath
    self.assertTrue(os.path.exists(media_path(db)))
AssertionError: False is not true

======================================================================
FAIL: test_ged (gramps.plugins.test.exports_test.ExportControl.test_ged)
Run a Gedcom export test
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/codefarmer/gramps-project/gramps/gramps/plugins/test/exports_test.py", line 234, in test_ged
    self.fail(tst_file + ": " + msg)
AssertionError: exp_sample_ged.ged: @@ -1,11 +1,11 @@
 0 HEAD
 1 SOUR Gramps
-2 VERS 5.1.2
+2 VERS 5.2.1
 2 NAME Gramps
-1 DATE 7 JAN 2020
-2 TIME 13:39:43
+1 DATE 10 MAR 2024
+2 TIME 11:03:43
 1 SUBM @SUBM@
-1 FILE C:\Users\prc\AppData\Roaming\gramps\temp\exp_sample_ged.ged
-1 COPR Copyright (c) 2020 Alex Roitman,,,.
+1 FILE /tmp/tmph7mqi8r2/exp_sample_ged.ged
+1 COPR Copyright (c) 2024 Alex Roitman,,,.
 1 GEDC
 2 VERS 5.5.1
@@ -45,5 +45,5 @@
 1 CHAN
 2 DATE 27 OCT 2016
-3 TIME 15:14:42
+3 TIME 11:14:42
 0 @I0001@ INDI
 1 NAME Keith Lloyd /Smith/
@@ -60,5 +60,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0002@ INDI
 1 NAME Amber Marie /Smith/
@@ -82,5 +82,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0003@ INDI
 1 NAME Magnes /Smith/
@@ -102,5 +102,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0004@ INDI
 1 NAME Ingeman /Smith/
@@ -117,5 +117,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0005@ INDI
 1 NAME Mason Michael /Smith/
@@ -138,5 +138,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0006@ INDI
 1 NAME Edwin /Willard/
@@ -151,5 +151,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0007@ INDI
 1 NAME Ingar /Smith/
@@ -166,5 +166,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0008@ INDI
 1 NAME Hjalmar /Smith/
@@ -195,5 +195,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0009@ INDI
 1 NAME Emil /Smith/
@@ -210,5 +210,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0010@ INDI
 1 NAME Hans Peter /Smith/
@@ -247,5 +247,5 @@
 1 CHAN
 2 DATE 4 JUN 2016
-3 TIME 21:32:08
+3 TIME 17:32:08
 0 @I0011@ INDI
 1 NAME Hanna /Smith/
@@ -262,5 +262,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0012@ INDI
 1 NAME Herman Julius /Nielsen/
@@ -279,5 +279,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0013@ INDI
 1 NAME Evelyn /Michaels/
@@ -292,5 +292,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0014@ INDI
 1 NAME Marjorie Lee /Smith/
@@ -307,5 +307,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0015@ INDI
 1 NAME Gus /Smith/
@@ -327,5 +327,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0016@ INDI
 1 NAME Jennifer /Anderson/
@@ -345,5 +345,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0017@ INDI
 1 NAME Lillie Harriet /Jones/
@@ -362,5 +362,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0018@ INDI
 1 NAME John Hjalmar /Smith/
@@ -378,5 +378,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0019@ INDI
 1 NAME Eric Lloyd /Smith/
@@ -398,5 +398,5 @@
 1 CHAN
 2 DATE 4 JUN 2016
-3 TIME 21:25:13
+3 TIME 17:25:13
 0 @I0020@ INDI
 1 NAME Carl Emil /Smith/
@@ -418,5 +418,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0021@ INDI
 1 NAME Hjalmar /Smith/
@@ -437,5 +437,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0022@ INDI
 1 NAME Martin /Smith/
@@ -462,5 +462,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0023@ INDI
 1 NAME Astrid Shermanna Augusta /Smith/
@@ -482,5 +482,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0024@ INDI
 1 NAME Gustaf /Smith/ Sr.
@@ -511,5 +511,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0025@ INDI
 1 NAME Marta /Ericsdotter/
@@ -525,5 +525,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0026@ INDI
 1 NAME Kirsti Marie /Smith/
@@ -545,5 +545,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0027@ INDI
 1 NAME Ingeman /Smith/
@@ -559,5 +559,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0028@ INDI
 1 NAME Anna /Streiffert/
@@ -577,5 +577,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0029@ INDI
 1 NAME Craig Peter /Smith/
@@ -595,5 +595,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0030@ INDI
 1 NAME Janice Ann /Adams/
@@ -613,5 +613,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0031@ INDI
 1 NAME Marjorie /Ohman/
@@ -638,5 +638,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0032@ INDI
 1 NAME Darcy /Horne/
@@ -654,5 +654,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0033@ INDI
 1 NAME Lloyd /Smith/
@@ -674,5 +674,5 @@
 1 CHAN
 2 DATE 4 SEP 2016
-3 TIME 20:17:13
+3 TIME 16:17:13
 0 @I0034@ INDI
 1 NAME Alice Paula /Perkins/
@@ -688,5 +688,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0035@ INDI
 1 NAME Lars Peter /Smith/
@@ -706,5 +706,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0036@ INDI
 1 NAME Elna /Jefferson/
@@ -727,5 +727,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0037@ INDI
 1 NAME Edwin Michael /Smith/
@@ -754,5 +754,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0038@ INDI
 1 NAME Kerstina /Hansdotter/
@@ -772,5 +772,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0039@ INDI
 1 NAME Martin /Smith/
@@ -791,5 +791,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0040@ INDI
 1 NAME Marjorie Alice /Smith/
@@ -806,5 +806,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0041@ INDI
 1 NAME Janis Elaine /Green/
@@ -819,5 +819,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @I0042@ INDI
 1 NAME \u96ea /Ke \u67ef/
@@ -839,5 +839,5 @@
 1 CHAN
 2 DATE 18 JUN 2016
-3 TIME 17:04:25
+3 TIME 13:04:25
 0 @I0043@ INDI
 1 NAME \u30d4\u30fc\u30bf\u30fc /\u30ea\u30c1\u30df\u30b7\u30ad\u30b9\u30a4\u30df/
@@ -848,5 +848,5 @@
 1 CHAN
 2 DATE 18 JUN 2016
-3 TIME 16:42:08
+3 TIME 12:42:08
 0 @I0044@ INDI
 1 NAME The /Tester/
@@ -898,5 +898,5 @@
 1 CHAN
 2 DATE 29 OCT 2016
-3 TIME 16:40:40
+3 TIME 12:40:40
 0 @I0045@ INDI
 1 NAME Mrs /Tester/
@@ -932,5 +932,5 @@
 1 CHAN
 2 DATE 29 OCT 2016
-3 TIME 14:22:58
+3 TIME 10:22:58
 0 @I0046@ INDI
 1 NAME Tom /Von Tester y tested/
@@ -979,5 +979,5 @@
 1 CHAN
 2 DATE 29 OCT 2016
-3 TIME 16:27:59
+3 TIME 12:27:59
 0 @I0047@ INDI
 1 NAME Fake /von Person/ I
@@ -1051,5 +1051,5 @@
 1 CHAN
 2 DATE 29 OCT 2016
-3 TIME 16:27:59
+3 TIME 12:27:59
 0 @I0048@ INDI
 1 NAME Mary /Tester/
@@ -1066,5 +1066,5 @@
 1 CHAN
 2 DATE 29 OCT 2016
-3 TIME 16:27:59
+3 TIME 12:27:59
 0 @I0049@ INDI
 1 NAME Martha /Tester/
@@ -1077,5 +1077,5 @@
 1 CHAN
 2 DATE 29 OCT 2016
-3 TIME 16:27:59
+3 TIME 12:27:59
 0 @I0050@ INDI
 1 NAME John /Tester/
@@ -1088,5 +1088,5 @@
 1 CHAN
 2 DATE 29 OCT 2016
-3 TIME 16:27:59
+3 TIME 12:27:59
 0 @I0051@ INDI
 1 NAME Mark /Tester/
@@ -1099,5 +1099,5 @@
 1 CHAN
 2 DATE 29 OCT 2016
-3 TIME 16:27:59
+3 TIME 12:27:59
 0 @F0000@ FAM
 1 HUSB @I0039@
@@ -1113,5 +1113,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @F0001@ FAM
 1 HUSB @I0027@
@@ -1124,5 +1124,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @F0002@ FAM
 1 HUSB @I0022@
@@ -1136,5 +1136,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @F0003@ FAM
 1 HUSB @I0024@
@@ -1153,5 +1153,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @F0004@ FAM
 1 HUSB @I0006@
@@ -1162,5 +1162,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @F0005@ FAM
 1 HUSB @I0012@
@@ -1173,5 +1173,5 @@
 1 CHAN
 2 DATE 12 JUN 2016
-3 TIME 14:27:35
+3 TIME 10:27:35
 0 @F0006@ FAM
 1 HUSB @I0008@
@@ -1185,5 +1185,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @F0007@ FAM
 1 HUSB @I0015@
@@ -1194,5 +1194,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @F0008@ FAM
 1 HUSB @I0033@
@@ -1208,5 +1208,5 @@
 1 CHAN
 2 DATE 4 SEP 2016
-3 TIME 20:14:33
+3 TIME 16:14:33
 0 @F0009@ FAM
 1 HUSB @I0010@
@@ -1215,5 +1215,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @F0010@ FAM
 1 HUSB @I0019@
@@ -1226,5 +1226,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @F0011@ FAM
 1 HUSB @I0003@
@@ -1236,5 +1236,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @F0012@ FAM
 1 HUSB @I0018@
@@ -1249,5 +1249,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @F0013@ FAM
 1 HUSB @I0037@
@@ -1265,5 +1265,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @F0014@ FAM
 1 HUSB @I0010@
@@ -1271,5 +1271,5 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @F0016@ FAM
 1 HUSB @I0044@
@@ -1307,5 +1307,5 @@
 1 CHAN
 2 DATE 29 OCT 2016
-3 TIME 16:27:59
+3 TIME 12:27:59
 0 @S0000@ SOUR
 1 TITL Marriage Certificae
@@ -1316,15 +1316,15 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @S0001@ SOUR
 1 TITL Birth Certificate
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @S0002@ SOUR
 1 TITL Birth Records
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @S0003@ SOUR
 1 TITL Birth, Death and Marriage Records
@@ -1335,10 +1335,10 @@
 1 CHAN
 2 DATE 21 DEC 2007
-3 TIME 07:35:26
+3 TIME 02:35:26
 0 @S0004@ SOUR
 1 TITL findagrave.com
 1 CHAN
 2 DATE 4 JUN 2016
-3 TIME 21:28:36
+3 TIME 17:28:36
 0 @S0005@ SOUR
 1 TITL Import from imp_FTM_LINK.ged
@@ -1347,5 +1347,5 @@
 1 CHAN
 2 DATE 29 AUG 2016
-3 TIME 19:51:48
+3 TIME 15:51:48
 0 @S0006@ SOUR
 1 TITL Ohio Births, 1958-2002
@@ -1353,5 +1353,5 @@
 1 CHAN
 2 DATE 29 AUG 2016
-3 TIME 19:51:48
+3 TIME 15:51:48
 0 @S0007@ SOUR
 1 AUTH The tester
@@ -1361,5 +1361,5 @@
 1 CHAN
 2 DATE 29 OCT 2016
-3 TIME 16:20:39
+3 TIME 12:20:39
 0 @R0000@ REPO
 1 NAME Business that produced the product: Ancestry.com
@@ -1476,5 +1476,5 @@
 0 @N0019@ NOTE A bad photo for sure
 0 @O0000@ OBJE
-1 FILE d:\users\prc\documents\gramps\data\tests\O0.jpg
+1 FILE /home/codefarmer/gramps-project/gramps/data/tests/O0.jpg
 2 FORM jpg
 2 TITL Michael O'Toole 2015-11
@@ -1482,4 +1482,4 @@
 1 CHAN
 2 DATE 29 OCT 2016
-3 TIME 15:23:37
+3 TIME 11:23:37
 0 TRLR


----------------------------------------------------------------------
Ran 3 tests in 0.429s

FAILED (failures=2, errors=1)

Progress! By looking at .github/workflows/gramps-ci.yml CI configuration, I discovered that two addons are installed (CliMerge and ExportRaw) so I did the same. Installing these two got rid of one failure: test_mediapath (gramps.gen.utils.test.file_test.FileTest.test_mediapath)

Two more to go.

Try running the unit tests with:

LANG=en_US.utf8 python3 -m unittest

Setting the GRAMPS_RESOURCES environment variable is no longer necessary.

The reason for setting LANG is that some tests compare the output with a file generated using the US locale. This may possibly also fix your time related issue.

I also had a test fail when I had set a non-default name format. This ideally needs to be fixed in the unit test.

Installing CliMerge and ExportRaw is a good idea. You will get more tests to run, but they should just get skipped if these addons are not installed.

Update:

The command I actually use is:

LANG=en_US.utf8 python3 setup.py test

Thanks, @Nick-Hall. Setting the LANG envvar helped resolve this test “ERROR: test4_arbitrary_uncode_path (gramps.cli.test.cli_test.UnicodeTest.test4_arbitrary_uncode_path)”

Two down, one to go!

The test_ged (gramps.plugins.test.exports_test.ExportControl.test_ged) still fails, because it is comparing things that that likely should not be. Let me look at the source.

This is being tracked by defect 12902 and resolved by PR 1729.