From: Zac Medico Date: Fri, 16 Dec 2011 03:11:53 +0000 (-0800) Subject: data.py: tweak getgrnam call for PyPy X-Git-Tag: v2.2.0_alpha82~61 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=b7aa8acf8f353c11e622692a863716966eacad6f;p=portage.git data.py: tweak getgrnam call for PyPy This makes it unnecessary to explicitly call portage.data._init() in runTests, and fixes some other cases that trigger the same issue. --- diff --git a/pym/portage/data.py b/pym/portage/data.py index cf94ab0cd..ec750a611 100644 --- a/pym/portage/data.py +++ b/pym/portage/data.py @@ -87,7 +87,12 @@ def _get_global(k): #Discover the uid and gid of the portage user/group try: portage_uid = pwd.getpwnam(_get_global('_portage_username')).pw_uid - portage_gid = grp.getgrnam(_get_global('_portage_grpname')).gr_gid + _portage_grpname = _get_global('_portage_grpname') + if platform.python_implementation() == 'PyPy': + # Somehow this prevents "TypeError: expected string" errors + # from grp.getgrnam() with PyPy 1.7 + _portage_grpname = str(_portage_grpname) + portage_gid = grp.getgrnam(_portage_grpname).gr_gid if secpass < 1 and portage_gid in os.getgroups(): secpass = 1 except KeyError: diff --git a/pym/portage/tests/runTests b/pym/portage/tests/runTests index 0c476b3eb..4c1008708 100755 --- a/pym/portage/tests/runTests +++ b/pym/portage/tests/runTests @@ -30,10 +30,6 @@ import portage # work the same regardless of global configuration file state/existence. portage._disable_legacy_globals() -# Somehow this prevents "TypeError: expected string" errors -# from grp.getgrnam() with PyPy 1.7 -portage.data._init(os.environ) - import portage.tests as tests from portage.const import PORTAGE_BIN_PATH path = os.environ.get("PATH", "").split(":")