File: test_rposix_environ.py

package info (click to toggle)
pypy 7.0.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 107,216 kB
  • sloc: python: 1,201,787; ansic: 62,419; asm: 5,169; cpp: 3,017; sh: 2,534; makefile: 545; xml: 243; lisp: 45; awk: 4
file content (39 lines) | stat: -rw-r--r-- 1,137 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from rpython.translator.c.test.test_genc import compile
import os

def test_environ_items():
    def foo(x):
        if x:
            return len(os.environ.items())
        else:
            return 0

    f = compile(foo, [int], backendopt=False)
    assert f(1) > 0

def test_unset_error():
    import sys
    def foo(x):
        if x:
            os.environ['TEST'] = 'STRING'
            assert os.environ['TEST'] == 'STRING'
            del os.environ['TEST']
            try:
                del os.environ['key=']
            except (KeyError, OSError):
                return 1
            return 2
        else:
            return 0

    f = compile(foo, [int], backendopt=False)
    if sys.platform.startswith('win'):
        # Do not open error dialog box
        import ctypes
        SEM_NOGPFAULTERRORBOX = 0x0002 # From MSDN
        old_err_mode = ctypes.windll.kernel32.GetErrorMode()
        new_err_mode = old_err_mode | SEM_NOGPFAULTERRORBOX
        ctypes.windll.kernel32.SetErrorMode(new_err_mode)
    assert f(1) == 1
    if sys.platform.startswith('win'):
        ctypes.windll.kernel32.SetErrorMode(old_err_mode)