Skip to content

Commit 65713ce

Browse files
Address review comments.
1 parent 2eb9533 commit 65713ce

File tree

2 files changed

+23
-39
lines changed

2 files changed

+23
-39
lines changed

Lib/test/test_capi/test_misc.py

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1113,39 +1113,39 @@ def test_sys_getattr(self):
11131113
# CRASHES sys_getattr(NULL)
11141114

11151115
def test_sys_getattrstring(self):
1116-
sys_getattr = _testcapi.sys_getattrstring
1116+
getattrstring = _testcapi.sys_getattrstring
11171117

1118-
self.assertIs(sys_getattr(b'stdout'), sys.stdout)
1118+
self.assertIs(getattrstring(b'stdout'), sys.stdout)
11191119
with support.swap_attr(sys, '\U0001f40d', 42):
1120-
self.assertEqual(sys_getattr('\U0001f40d'.encode()), 42)
1120+
self.assertEqual(getattrstring('\U0001f40d'.encode()), 42)
11211121

11221122
with self.assertRaisesRegex(RuntimeError, r'lost sys\.nonexisting'):
1123-
sys_getattr(b'nonexisting')
1124-
self.assertRaises(UnicodeDecodeError, sys_getattr, b'\xff')
1125-
# CRASHES sys_getattr(NULL)
1123+
getattrstring(b'nonexisting')
1124+
self.assertRaises(UnicodeDecodeError, getattrstring, b'\xff')
1125+
# CRASHES getattrstring(NULL)
11261126

11271127
def test_sys_getoptionalattr(self):
1128-
sys_getattr = _testcapi.sys_getoptionalattr
1128+
getoptionalattr = _testcapi.sys_getoptionalattr
11291129

1130-
self.assertIs(sys_getattr('stdout'), sys.stdout)
1130+
self.assertIs(getoptionalattr('stdout'), sys.stdout)
11311131
with support.swap_attr(sys, '\U0001f40d', 42):
1132-
self.assertEqual(sys_getattr('\U0001f40d'), 42)
1132+
self.assertEqual(getoptionalattr('\U0001f40d'), 42)
11331133

1134-
self.assertIs(sys_getattr('nonexisting'), AttributeError)
1135-
self.assertIs(sys_getattr(1), AttributeError)
1136-
self.assertRaises(TypeError, sys_getattr, [])
1137-
# CRASHES sys_getattr(NULL)
1134+
self.assertIs(getoptionalattr('nonexisting'), AttributeError)
1135+
self.assertIs(getoptionalattr(1), AttributeError)
1136+
self.assertRaises(TypeError, getoptionalattr, [])
1137+
# CRASHES getoptionalattr(NULL)
11381138

11391139
def test_sys_getoptionalattrstring(self):
1140-
sys_getattr = _testcapi.sys_getoptionalattrstring
1140+
getoptionalattrstring = _testcapi.sys_getoptionalattrstring
11411141

1142-
self.assertIs(sys_getattr(b'stdout'), sys.stdout)
1142+
self.assertIs(getoptionalattrstring(b'stdout'), sys.stdout)
11431143
with support.swap_attr(sys, '\U0001f40d', 42):
1144-
self.assertEqual(sys_getattr('\U0001f40d'.encode()), 42)
1144+
self.assertEqual(getoptionalattrstring('\U0001f40d'.encode()), 42)
11451145

1146-
self.assertIs(sys_getattr(b'nonexisting'), AttributeError)
1147-
self.assertRaises(UnicodeDecodeError, sys_getattr, b'\xff')
1148-
# CRASHES sys_getattr(NULL)
1146+
self.assertIs(getoptionalattrstring(b'nonexisting'), AttributeError)
1147+
self.assertRaises(UnicodeDecodeError, getoptionalattrstring, b'\xff')
1148+
# CRASHES getoptionalattrstring(NULL)
11491149

11501150
def test_sys_getobject(self):
11511151
getobject = _testcapi.sys_getobject

Modules/_testcapimodule.c

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3235,15 +3235,7 @@ static PyObject *
32353235
sys_getattr(PyObject *Py_UNUSED(module), PyObject *name)
32363236
{
32373237
NULLABLE(name);
3238-
PyObject *result = PySys_GetAttr(name);
3239-
if (result == NULL && PyErr_Occurred()) {
3240-
return NULL;
3241-
}
3242-
if (result == NULL) {
3243-
result = PyExc_AttributeError;
3244-
Py_INCREF(PyExc_AttributeError);
3245-
}
3246-
return result;
3238+
return PySys_GetAttr(name);
32473239
}
32483240

32493241
static PyObject *
@@ -3254,15 +3246,7 @@ sys_getattrstring(PyObject *Py_UNUSED(module), PyObject *arg)
32543246
if (!PyArg_Parse(arg, "z#", &name, &size)) {
32553247
return NULL;
32563248
}
3257-
PyObject *result = PySys_GetAttrString(name);
3258-
if (result == NULL && PyErr_Occurred()) {
3259-
return NULL;
3260-
}
3261-
if (result == NULL) {
3262-
result = PyExc_AttributeError;
3263-
Py_INCREF(PyExc_AttributeError);
3264-
}
3265-
return result;
3249+
return PySys_GetAttrString(name);
32663250
}
32673251

32683252
static PyObject *
@@ -3274,6 +3258,7 @@ sys_getoptionalattr(PyObject *Py_UNUSED(module), PyObject *name)
32743258
switch (PySys_GetOptionalAttr(name, &value)) {
32753259
case -1:
32763260
assert(value == NULL);
3261+
assert(PyErr_Occurred());
32773262
return NULL;
32783263
case 0:
32793264
assert(value == NULL);
@@ -3282,7 +3267,6 @@ sys_getoptionalattr(PyObject *Py_UNUSED(module), PyObject *name)
32823267
return value;
32833268
default:
32843269
Py_FatalError("PySys_GetOptionalAttr() returned invalid code");
3285-
Py_UNREACHABLE();
32863270
}
32873271
}
32883272

@@ -3299,6 +3283,7 @@ sys_getoptionalattrstring(PyObject *Py_UNUSED(module), PyObject *arg)
32993283
switch (PySys_GetOptionalAttrString(name, &value)) {
33003284
case -1:
33013285
assert(value == NULL);
3286+
assert(PyErr_Occurred());
33023287
return NULL;
33033288
case 0:
33043289
assert(value == NULL);
@@ -3307,7 +3292,6 @@ sys_getoptionalattrstring(PyObject *Py_UNUSED(module), PyObject *arg)
33073292
return value;
33083293
default:
33093294
Py_FatalError("PySys_GetOptionalAttrString() returned invalid code");
3310-
Py_UNREACHABLE();
33113295
}
33123296
}
33133297

0 commit comments

Comments
 (0)