Skip to content

Commit cadf050

Browse files
committed
[GR-17454][GR-17525] import/run pytest
PullRequest: graalpython/601
2 parents e98007f + 3769258 commit cadf050

32 files changed

+1391
-479
lines changed

graalpython/com.oracle.graal.python.test/src/tests/test_subprocess.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (c) 2018, Oracle and/or its affiliates.
1+
# Copyright (c) 2018, 2019, Oracle and/or its affiliates.
22
# Copyright (C) 1996-2017 Python Software Foundation
33
#
44
# Licensed under the PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
@@ -79,3 +79,16 @@ def test_check_output_stdout_arg(self):
7979
stdout=sys.stdout)
8080
self.fail("Expected ValueError when stdout arg supplied.")
8181
self.assertIn('stdout', c.exception.args[0])
82+
83+
def test_kill(self):
84+
p = subprocess.Popen([sys.executable, "-c", "print('oh no')"])
85+
p.kill()
86+
assert True
87+
88+
def test_waitpid(self):
89+
import os
90+
p = subprocess.Popen([sys.executable, "-c", "import time; time.sleep(2); 42"])
91+
try:
92+
assert os.waitpid(p.pid, os.WNOHANG) == (0, 0)
93+
finally:
94+
p.kill()
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
2+
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3+
#
4+
# The Universal Permissive License (UPL), Version 1.0
5+
#
6+
# Subject to the condition set forth below, permission is hereby granted to any
7+
# person obtaining a copy of this software, associated documentation and/or
8+
# data (collectively the "Software"), free of charge and under any and all
9+
# copyright rights in the Software, and any and all patent rights owned or
10+
# freely licensable by each licensor hereunder covering either (i) the
11+
# unmodified Software as contributed to or provided by such licensor, or (ii)
12+
# the Larger Works (as defined below), to deal in both
13+
#
14+
# (a) the Software, and
15+
#
16+
# (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if
17+
# one is included with the Software each a "Larger Work" to which the Software
18+
# is contributed by such licensors),
19+
#
20+
# without restriction, including without limitation the rights to copy, create
21+
# derivative works of, display, perform, and distribute the Software and make,
22+
# use, sell, offer for sale, import, export, have made, and have sold the
23+
# Software and the Larger Work(s), and to sublicense the foregoing rights on
24+
# either these or other terms.
25+
#
26+
# This license is subject to the following condition:
27+
#
28+
# The above copyright notice and either this complete permission notice or at a
29+
# minimum a reference to the UPL must be included in all copies or substantial
30+
# portions of the Software.
31+
#
32+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
33+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
34+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
35+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
36+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
37+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
38+
# SOFTWARE.
39+
40+
41+
def assert_raises(err, fn, *args, **kwargs):
42+
raised = False
43+
try:
44+
fn(*args, **kwargs)
45+
except err:
46+
raised = True
47+
assert raised
48+
49+
50+
def test_create():
51+
from tempfile import TemporaryFile
52+
try:
53+
f = TemporaryFile()
54+
assert f is not None
55+
f.close()
56+
except Exception as e:
57+
print(e)
58+
assert False
59+

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/PythonLanguage.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -380,8 +380,8 @@ protected Iterable<Scope> findTopScopes(PythonContext context) {
380380
ArrayList<Scope> scopes = new ArrayList<>();
381381
if (context.getBuiltins() != null) {
382382
// false during initialization
383-
scopes.add(Scope.newBuilder("__main__", context.getMainModule()).build());
384-
scopes.add(Scope.newBuilder("builtins", scopeFromObject(context.getBuiltins())).build());
383+
scopes.add(Scope.newBuilder(BuiltinNames.__MAIN__, context.getMainModule()).build());
384+
scopes.add(Scope.newBuilder(BuiltinNames.BUILTINS, scopeFromObject(context.getBuiltins())).build());
385385
}
386386
return scopes;
387387
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/Python3Core.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,6 @@
4040
import java.util.function.Supplier;
4141
import java.util.logging.Level;
4242

43-
import com.oracle.graal.python.builtins.modules.ResourceModuleBuiltins;
44-
import org.graalvm.nativeimage.ImageInfo;
45-
4643
import com.oracle.graal.python.PythonLanguage;
4744
import com.oracle.graal.python.builtins.modules.ArrayModuleBuiltins;
4845
import com.oracle.graal.python.builtins.modules.AstModuleBuiltins;
@@ -78,6 +75,7 @@
7875
import com.oracle.graal.python.builtins.modules.QueueModuleBuiltins;
7976
import com.oracle.graal.python.builtins.modules.RandomModuleBuiltins;
8077
import com.oracle.graal.python.builtins.modules.ReadlineModuleBuiltins;
78+
import com.oracle.graal.python.builtins.modules.ResourceModuleBuiltins;
8179
import com.oracle.graal.python.builtins.modules.SREModuleBuiltins;
8280
import com.oracle.graal.python.builtins.modules.SelectModuleBuiltins;
8381
import com.oracle.graal.python.builtins.modules.SignalModuleBuiltins;
@@ -163,15 +161,16 @@
163161
import com.oracle.graal.python.builtins.objects.type.TypeBuiltins;
164162
import com.oracle.graal.python.builtins.objects.type.TypeNodes.GetNameNode;
165163
import com.oracle.graal.python.builtins.objects.zipimporter.ZipImporterBuiltins;
164+
import com.oracle.graal.python.nodes.BuiltinNames;
166165
import com.oracle.graal.python.runtime.PythonContext;
167166
import com.oracle.graal.python.runtime.PythonCore;
168167
import com.oracle.graal.python.runtime.PythonParser;
169168
import com.oracle.graal.python.runtime.PythonParser.ParserMode;
170169
import com.oracle.graal.python.runtime.exception.PException;
171170
import com.oracle.graal.python.runtime.object.PythonObjectFactory;
171+
import com.oracle.truffle.api.CallTarget;
172172
import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
173173
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
174-
import com.oracle.truffle.api.CallTarget;
175174
import com.oracle.truffle.api.RootCallTarget;
176175
import com.oracle.truffle.api.Truffle;
177176
import com.oracle.truffle.api.TruffleFile;
@@ -182,6 +181,8 @@
182181
import com.oracle.truffle.api.source.Source;
183182
import com.oracle.truffle.api.source.SourceSection;
184183

184+
import org.graalvm.nativeimage.ImageInfo;
185+
185186
/**
186187
* The core is intended to the immutable part of the interpreter, including most modules and most
187188
* types.
@@ -213,6 +214,7 @@ private static final String[] initializeCoreFiles() {
213214
"_weakref",
214215
"set",
215216
"itertools",
217+
"faulthandler",
216218
"base_exception",
217219
PythonCextBuiltins.PYTHON_CEXT,
218220
"_collections",
@@ -428,11 +430,11 @@ private void initializeJavaCore() {
428430
initializeTypes();
429431
populateBuiltins();
430432
publishBuiltinModules();
431-
builtinsModule = builtinModules.get("builtins");
433+
builtinsModule = builtinModules.get(BuiltinNames.BUILTINS);
432434
}
433435

434436
private void initializePythonCore(String coreHome) {
435-
loadFile("builtins", coreHome);
437+
loadFile(BuiltinNames.BUILTINS, coreHome);
436438
for (String s : coreFiles) {
437439
loadFile(s, coreHome);
438440
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/PythonBuiltinClassType.java

Lines changed: 87 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -48,64 +48,64 @@
4848
public enum PythonBuiltinClassType implements LazyPythonClass {
4949

5050
ForeignObject(BuiltinNames.FOREIGN),
51-
Boolean("bool", "builtins"),
51+
Boolean("bool", BuiltinNames.BUILTINS),
5252
GetSetDescriptor("get_set_desc"),
5353
PArray("array", "array"),
5454
PArrayIterator("arrayiterator"),
5555
PIterator("iterator"),
5656
PBuiltinFunction("method_descriptor"),
5757
PBuiltinMethod("builtin_function_or_method"),
58-
PByteArray("bytearray", "builtins"),
59-
PBytes("bytes", "builtins"),
58+
PByteArray("bytearray", BuiltinNames.BUILTINS),
59+
PBytes("bytes", BuiltinNames.BUILTINS),
6060
PCell("cell"),
61-
PComplex("complex", "builtins"),
62-
PDict("dict", "builtins"),
61+
PComplex("complex", BuiltinNames.BUILTINS),
62+
PDict("dict", BuiltinNames.BUILTINS),
6363
PDictKeysView("dict_keys"),
6464
PDictItemsIterator("dict_itemsiterator"),
6565
PDictItemsView("dict_items"),
6666
PDictKeysIterator("dict_keysiterator"),
6767
PDictValuesIterator("dict_valuesiterator"),
6868
PDictValuesView("dict_values"),
6969
PEllipsis("ellipsis"),
70-
PEnumerate("enumerate", "builtins"),
71-
PFloat("float", "builtins"),
70+
PEnumerate("enumerate", BuiltinNames.BUILTINS),
71+
PFloat("float", BuiltinNames.BUILTINS),
7272
PFrame("frame"),
73-
PFrozenSet("frozenset", "builtins"),
73+
PFrozenSet("frozenset", BuiltinNames.BUILTINS),
7474
PFunction("function"),
7575
PGenerator("generator"),
76-
PInt("int", "builtins"),
77-
PList("list", "builtins"),
76+
PInt("int", BuiltinNames.BUILTINS),
77+
PList("list", BuiltinNames.BUILTINS),
7878
PMappingproxy("mappingproxy"),
79-
PMemoryView("memoryview", "builtins"),
79+
PMemoryView("memoryview", BuiltinNames.BUILTINS),
8080
PMethod("method"),
8181
PMMap("mmap", "mmap"),
8282
PNone("NoneType"),
8383
PNotImplemented("NotImplementedType"),
8484
PRandom("Random", "_random"),
85-
PRange("range", "builtins"),
85+
PRange("range", BuiltinNames.BUILTINS),
8686
PReferenceType("ReferenceType", "_weakref"),
8787
PSentinelIterator("callable_iterator"),
8888
PForeignArrayIterator("foreign_iterator"),
89-
PReverseIterator("reversed", "builtins"),
90-
PSet("set", "builtins"),
91-
PSlice("slice", "builtins"),
92-
PString("str", "builtins"),
89+
PReverseIterator("reversed", BuiltinNames.BUILTINS),
90+
PSet("set", BuiltinNames.BUILTINS),
91+
PSlice("slice", BuiltinNames.BUILTINS),
92+
PString("str", BuiltinNames.BUILTINS),
9393
PTraceback("traceback"),
94-
PTuple("tuple", "builtins"),
95-
PythonClass("type", "builtins"),
94+
PTuple("tuple", BuiltinNames.BUILTINS),
95+
PythonClass("type", BuiltinNames.BUILTINS),
9696
PythonModule("module"),
97-
PythonObject("object", "builtins"),
98-
Super("super", "builtins"),
97+
PythonObject("object", BuiltinNames.BUILTINS),
98+
Super("super", BuiltinNames.BUILTINS),
9999
PCode("code"),
100-
PZip("zip", "builtins"),
100+
PZip("zip", BuiltinNames.BUILTINS),
101101
PZipImporter("zipimporter", "zipimport"),
102-
PBuffer("buffer", "builtins"),
102+
PBuffer("buffer", BuiltinNames.BUILTINS),
103103
PThread("start_new_thread", "_thread"),
104104
PLock("LockType", "_thread"),
105105
PRLock("RLock", "_thread"),
106106
PSocket("socket", "_socket"),
107-
PStaticmethod("staticmethod", "builtins"),
108-
PClassmethod("classmethod", "builtins"),
107+
PStaticmethod("staticmethod", BuiltinNames.BUILTINS),
108+
PClassmethod("classmethod", BuiltinNames.BUILTINS),
109109
PScandirIterator("ScandirIterator", "posix"),
110110
PDirEntry("DirEntry", "posix"),
111111
PLZMACompressor("LZMACompressor", "_lzma"),
@@ -114,77 +114,77 @@ public enum PythonBuiltinClassType implements LazyPythonClass {
114114
// Errors and exceptions:
115115

116116
// everything after BaseException is considered to be an exception
117-
PBaseException("BaseException", "builtins"),
118-
SystemExit("SystemExit", "builtins"),
119-
KeyboardInterrupt("KeyboardInterrupt", "builtins"),
120-
GeneratorExit("GeneratorExit", "builtins"),
121-
Exception("Exception", "builtins"),
122-
StopIteration("StopIteration", "builtins"),
123-
ArithmeticError("ArithmeticError", "builtins"),
124-
FloatingPointError("FloatingPointError", "builtins"),
125-
OverflowError("OverflowError", "builtins"),
126-
ZeroDivisionError("ZeroDivisionError", "builtins"),
127-
AssertionError("AssertionError", "builtins"),
128-
AttributeError("AttributeError", "builtins"),
129-
BufferError("BufferError", "builtins"),
130-
EOFError("EOFError", "builtins"),
131-
ImportError("ImportError", "builtins"),
132-
ModuleNotFoundError("ModuleNotFoundError", "builtins"),
133-
LookupError("LookupError", "builtins"),
134-
IndexError("IndexError", "builtins"),
135-
KeyError("KeyError", "builtins"),
136-
MemoryError("MemoryError", "builtins"),
137-
NameError("NameError", "builtins"),
138-
UnboundLocalError("UnboundLocalError", "builtins"),
139-
OSError("OSError", "builtins"),
140-
BlockingIOError("BlockingIOError", "builtins"),
141-
ChildProcessError("ChildProcessError", "builtins"),
142-
ConnectionError("ConnectionError", "builtins"),
143-
BrokenPipeError("BrokenPipeError", "builtins"),
144-
ConnectionAbortedError("ConnectionAbortedError", "builtins"),
145-
ConnectionRefusedError("ConnectionRefusedError", "builtins"),
146-
ConnectionResetError("ConnectionResetError", "builtins"),
147-
FileExistsError("FileExistsError", "builtins"),
148-
FileNotFoundError("FileNotFoundError", "builtins"),
149-
InterruptedError("InterruptedError", "builtins"),
150-
IsADirectoryError("IsADirectoryError", "builtins"),
151-
NotADirectoryError("NotADirectoryError", "builtins"),
152-
PermissionError("PermissionError", "builtins"),
153-
ProcessLookupError("ProcessLookupError", "builtins"),
154-
TimeoutError("TimeoutError", "builtins"),
117+
PBaseException("BaseException", BuiltinNames.BUILTINS),
118+
SystemExit("SystemExit", BuiltinNames.BUILTINS),
119+
KeyboardInterrupt("KeyboardInterrupt", BuiltinNames.BUILTINS),
120+
GeneratorExit("GeneratorExit", BuiltinNames.BUILTINS),
121+
Exception("Exception", BuiltinNames.BUILTINS),
122+
StopIteration("StopIteration", BuiltinNames.BUILTINS),
123+
ArithmeticError("ArithmeticError", BuiltinNames.BUILTINS),
124+
FloatingPointError("FloatingPointError", BuiltinNames.BUILTINS),
125+
OverflowError("OverflowError", BuiltinNames.BUILTINS),
126+
ZeroDivisionError("ZeroDivisionError", BuiltinNames.BUILTINS),
127+
AssertionError("AssertionError", BuiltinNames.BUILTINS),
128+
AttributeError("AttributeError", BuiltinNames.BUILTINS),
129+
BufferError("BufferError", BuiltinNames.BUILTINS),
130+
EOFError("EOFError", BuiltinNames.BUILTINS),
131+
ImportError("ImportError", BuiltinNames.BUILTINS),
132+
ModuleNotFoundError("ModuleNotFoundError", BuiltinNames.BUILTINS),
133+
LookupError("LookupError", BuiltinNames.BUILTINS),
134+
IndexError("IndexError", BuiltinNames.BUILTINS),
135+
KeyError("KeyError", BuiltinNames.BUILTINS),
136+
MemoryError("MemoryError", BuiltinNames.BUILTINS),
137+
NameError("NameError", BuiltinNames.BUILTINS),
138+
UnboundLocalError("UnboundLocalError", BuiltinNames.BUILTINS),
139+
OSError("OSError", BuiltinNames.BUILTINS),
140+
BlockingIOError("BlockingIOError", BuiltinNames.BUILTINS),
141+
ChildProcessError("ChildProcessError", BuiltinNames.BUILTINS),
142+
ConnectionError("ConnectionError", BuiltinNames.BUILTINS),
143+
BrokenPipeError("BrokenPipeError", BuiltinNames.BUILTINS),
144+
ConnectionAbortedError("ConnectionAbortedError", BuiltinNames.BUILTINS),
145+
ConnectionRefusedError("ConnectionRefusedError", BuiltinNames.BUILTINS),
146+
ConnectionResetError("ConnectionResetError", BuiltinNames.BUILTINS),
147+
FileExistsError("FileExistsError", BuiltinNames.BUILTINS),
148+
FileNotFoundError("FileNotFoundError", BuiltinNames.BUILTINS),
149+
InterruptedError("InterruptedError", BuiltinNames.BUILTINS),
150+
IsADirectoryError("IsADirectoryError", BuiltinNames.BUILTINS),
151+
NotADirectoryError("NotADirectoryError", BuiltinNames.BUILTINS),
152+
PermissionError("PermissionError", BuiltinNames.BUILTINS),
153+
ProcessLookupError("ProcessLookupError", BuiltinNames.BUILTINS),
154+
TimeoutError("TimeoutError", BuiltinNames.BUILTINS),
155155
ZipImportError("ZipImportError", "zipimport"),
156156
ZLibError("error", "zlib"),
157157
LZMAError("LZMAError", "_lzma"),
158158

159159
// todo: all OS errors
160160

161-
ReferenceError("ReferenceError", "builtins"),
162-
RuntimeError("RuntimeError", "builtins"),
163-
NotImplementedError("NotImplementedError", "builtins"),
164-
SyntaxError("SyntaxError", "builtins"),
165-
IndentationError("IndentationError", "builtins"),
166-
TabError("TabError", "builtins"),
167-
SystemError("SystemError", "builtins"),
168-
TypeError("TypeError", "builtins"),
169-
ValueError("ValueError", "builtins"),
170-
UnicodeError("UnicodeError", "builtins"),
171-
UnicodeDecodeError("UnicodeDecodeError", "builtins"),
172-
UnicodeEncodeError("UnicodeEncodeError", "builtins"),
173-
UnicodeTranslateError("UnicodeTranslateError", "builtins"),
174-
RecursionError("RecursionError", "builtins"),
161+
ReferenceError("ReferenceError", BuiltinNames.BUILTINS),
162+
RuntimeError("RuntimeError", BuiltinNames.BUILTINS),
163+
NotImplementedError("NotImplementedError", BuiltinNames.BUILTINS),
164+
SyntaxError("SyntaxError", BuiltinNames.BUILTINS),
165+
IndentationError("IndentationError", BuiltinNames.BUILTINS),
166+
TabError("TabError", BuiltinNames.BUILTINS),
167+
SystemError("SystemError", BuiltinNames.BUILTINS),
168+
TypeError("TypeError", BuiltinNames.BUILTINS),
169+
ValueError("ValueError", BuiltinNames.BUILTINS),
170+
UnicodeError("UnicodeError", BuiltinNames.BUILTINS),
171+
UnicodeDecodeError("UnicodeDecodeError", BuiltinNames.BUILTINS),
172+
UnicodeEncodeError("UnicodeEncodeError", BuiltinNames.BUILTINS),
173+
UnicodeTranslateError("UnicodeTranslateError", BuiltinNames.BUILTINS),
174+
RecursionError("RecursionError", BuiltinNames.BUILTINS),
175175

176176
// warnings
177-
Warning("Warning", "builtins"),
178-
BytesWarning("BytesWarning", "builtins"),
179-
DeprecationWarning("DeprecationWarning", "builtins"),
180-
FutureWarning("FutureWarning", "builtins"),
181-
ImportWarning("ImportWarning", "builtins"),
182-
PendingDeprecationWarning("PendingDeprecationWarning", "builtins"),
183-
ResourceWarning("ResourceWarning", "builtins"),
184-
RuntimeWarning("RuntimeWarning", "builtins"),
185-
SyntaxWarning("SyntaxWarning", "builtins"),
186-
UnicodeWarning("UnicodeWarning", "builtins"),
187-
UserWarning("UserWarning", "builtins");
177+
Warning("Warning", BuiltinNames.BUILTINS),
178+
BytesWarning("BytesWarning", BuiltinNames.BUILTINS),
179+
DeprecationWarning("DeprecationWarning", BuiltinNames.BUILTINS),
180+
FutureWarning("FutureWarning", BuiltinNames.BUILTINS),
181+
ImportWarning("ImportWarning", BuiltinNames.BUILTINS),
182+
PendingDeprecationWarning("PendingDeprecationWarning", BuiltinNames.BUILTINS),
183+
ResourceWarning("ResourceWarning", BuiltinNames.BUILTINS),
184+
RuntimeWarning("RuntimeWarning", BuiltinNames.BUILTINS),
185+
SyntaxWarning("SyntaxWarning", BuiltinNames.BUILTINS),
186+
UnicodeWarning("UnicodeWarning", BuiltinNames.BUILTINS),
187+
UserWarning("UserWarning", BuiltinNames.BUILTINS);
188188

189189
private final String name;
190190
private final Shape instanceShape;

0 commit comments

Comments
 (0)