Author: Philip Jenvey <[email protected]>
Branch:
Changeset: r63513:1407219a3903
Date: 2013-04-19 15:13 -0700
http://bitbucket.org/pypy/pypy/changeset/1407219a3903/
Log: add wenviron functions to rwin32
diff --git a/rpython/rlib/rwin32.py b/rpython/rlib/rwin32.py
--- a/rpython/rlib/rwin32.py
+++ b/rpython/rlib/rwin32.py
@@ -5,6 +5,7 @@
import os
import errno
+from rpython.rtyper.module.ll_os_environ import make_env_impls
from rpython.rtyper.tool import rffi_platform
from rpython.tool.udir import udir
from rpython.translator.tool.cbuild import ExternalCompilationInfo
@@ -390,3 +391,5 @@
raise lastWindowsError('os_kill failed to terminate process')
finally:
CloseHandle(handle)
+
+ _wenviron_items, _wgetenv, _wputenv = make_env_impls(win32=True)
diff --git a/rpython/rlib/test/test_rwin32.py b/rpython/rlib/test/test_rwin32.py
--- a/rpython/rlib/test/test_rwin32.py
+++ b/rpython/rlib/test/test_rwin32.py
@@ -1,3 +1,4 @@
+# encoding: utf-8
import os, py
if os.name != 'nt':
py.test.skip('tests for win32 only')
@@ -47,3 +48,13 @@
rwin32.CloseHandle(handle)
assert proc.wait() == signal.SIGTERM
[email protected]_track_allocations('putenv intentionally keeps strings
alive')
+def test_wenviron():
+ name, value = u'PYPY_TEST_日本', u'foobar日本'
+ rwin32._wputenv(name, value)
+ assert rwin32._wgetenv(name) == value
+ env = dict(rwin32._wenviron_items())
+ assert env[name] == value
+ for key, value in env.iteritems():
+ assert type(key) is unicode
+ assert type(value) is unicode
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit