Message287806
When I run test.test_posix.PosixTester.test_getgroups on my Mac OS X system, it fails:
% ./python.exe -m unittest -v test.test_posix.PosixTester.test_getgroups
test_getgroups (test.test_posix.PosixTester) ... FAIL
======================================================================
FAIL: test_getgroups (test.test_posix.PosixTester)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/jdlh/workspace/cpython/Lib/test/test_posix.py", line 824, in test_getgroups
self.assertTrue(not symdiff or symdiff == {posix.getegid()})
AssertionError: False is not true
----------------------------------------------------------------------
Ran 1 test in 0.013s
FAILED (failures=1)
Details of my system:
% sw_vers
ProductName: Mac OS X
ProductVersion: 10.10.5
BuildVersion: 14F2109
% id -G
20 507 12 61 80
98 399 33 100
204 395 398
701
% id -G -n
staff xampp everyone localaccounts admin
_lpadmin com.apple.access_ssh _appstore _lpoperator
_developer com.apple.access_ftp com.apple.access_screensharing
com.apple.sharepoint.group.1
# I wrapped these lines similarly, to make the correspondence clearer
% ./python.exe -c 'import grp,os; g={i: (n, p, i, mem) for (n, p, i, mem) in grp.getgrall()}; print(sorted([(i, g[i][0]) for i in os.getgroups()]) )'
[(12, 'everyone'), (20, 'staff'), (33, '_appstore'), (61, 'localaccounts'), (80, 'admin'), (98, '_lpadmin'), (100, '_lpoperator'), (204, '_developer'), (395, 'com.apple.access_ftp'), (399, 'com.apple.access_ssh'), (507, 'xampp')]
So the difference, which triggers the test failure, is that id -G is returning groups (701, 'com.apple.sharepoint.group.1'), and (398, 'com.apple.access_screensharing'), while posix.getgroups() is not. I do not yet understand why.
Others say this test works on their OS X 10.10 system, so maybe it's triggered by something in my environment.
Also: python3.6 from MacPorts, and python2.7 from MacPorts, return the same set of groupids as does the dev build of python3.7.
This bug affects the same test, and the same posix.getgroups() call, as http://bugs.python.org/issue17557 "test_getgroups of test_posix can fail on OS X 10.8 if more than 16 groups" (2013-2014, closed). But I think it is a different problem: issue17557 is related to how posix.getgroups() deals with large numbers of groups, and it is fixed.
I would appreciate help in getting this test to pass. Maybe my environment is wrong, in which case I should fix my environment. But maybe the cpython code is sensitive to some detail of my environment, in which case perhaps I should fix the cpython code. |
|
Date |
User |
Action |
Args |
2017-02-15 02:03:06 | JDLH | set | recipients:
+ JDLH |
2017-02-15 02:03:06 | JDLH | set | messageid: <1487124186.04.0.0593189278304.issue29562@psf.upfronthosting.co.za> |
2017-02-15 02:03:05 | JDLH | link | issue29562 messages |
2017-02-15 02:03:00 | JDLH | create | |
|