forked from pool/python-cffi
- Sort out with spec-cleaner OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-cffi?expand=0&rev=42
46 lines
1.2 KiB
Diff
46 lines
1.2 KiB
Diff
# HG changeset patch
|
|
# User Armin Rigo <arigo@tunes.org>
|
|
# Date 1515619092 -3600
|
|
# Node ID d16706e3c2da4ff29729c312b96af5cc251f82c4
|
|
# Parent a570b34ac8a60becdbc4a3404c737d03b4691353
|
|
Issue #352
|
|
|
|
Oops.
|
|
|
|
diff --git a/c/lib_obj.c b/c/lib_obj.c
|
|
--- a/c/lib_obj.c
|
|
+++ b/c/lib_obj.c
|
|
@@ -505,6 +505,7 @@
|
|
return x;
|
|
|
|
missing:
|
|
+ /*** ATTRIBUTEERROR IS SET HERE ***/
|
|
p = PyText_AsUTF8(name);
|
|
if (p == NULL)
|
|
return NULL;
|
|
@@ -534,6 +535,7 @@
|
|
#if PY_MAJOR_VERSION >= 3
|
|
if (strcmp(p, "__loader__") == 0 || strcmp(p, "__spec__") == 0) {
|
|
/* some more module-like behavior hacks */
|
|
+ PyErr_Clear();
|
|
Py_INCREF(Py_None);
|
|
return Py_None;
|
|
}
|
|
diff --git a/testing/cffi1/test_recompiler.py b/testing/cffi1/test_recompiler.py
|
|
--- a/testing/cffi1/test_recompiler.py
|
|
+++ b/testing/cffi1/test_recompiler.py
|
|
@@ -2287,3 +2287,13 @@
|
|
|
|
def test_char16_char32_plain_c():
|
|
test_char16_char32_type(no_cpp=True)
|
|
+
|
|
+def test_loader_spec():
|
|
+ ffi = FFI()
|
|
+ lib = verify(ffi, "test_loader_spec", "")
|
|
+ if sys.version_info < (3,):
|
|
+ assert not hasattr(lib, '__loader__')
|
|
+ assert not hasattr(lib, '__spec__')
|
|
+ else:
|
|
+ assert lib.__loader__ is None
|
|
+ assert lib.__spec__ is None
|