File: test_rposix_environ.py

package info (click to toggle)
pypy3 7.3.19%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 212,236 kB
  • sloc: python: 2,098,316; ansic: 540,565; sh: 21,462; asm: 14,419; cpp: 4,451; makefile: 4,209; objc: 761; xml: 530; exp: 499; javascript: 314; pascal: 244; lisp: 45; csh: 12; 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)