ns = {'__qualname__': 'some.name'}
tp = type('Foo', (), ns)
self.assertEqual(tp.__qualname__, 'some.name')
- self.assertEqual(tp.__dict__['__qualname__'], 'some.name')
+ self.assertNotIn('__qualname__', tp.__dict__)
self.assertEqual(ns, {'__qualname__': 'some.name'})
ns = {'__qualname__': 1}
keys = list(it)
keys.sort()
self.assertEqual(keys, ['__dict__', '__doc__', '__module__',
- '__qualname__', '__weakref__', 'meth'])
+ '__weakref__', 'meth'])
@unittest.skipIf(hasattr(sys, 'gettrace') and sys.gettrace(),
'trace function introduces __local__')
it = self.C.__dict__.values()
self.assertNotIsInstance(it, list)
values = list(it)
- self.assertEqual(len(values), 6)
+ self.assertEqual(len(values), 5)
@unittest.skipIf(hasattr(sys, 'gettrace') and sys.gettrace(),
'trace function introduces __local__')
keys = [item[0] for item in it]
keys.sort()
self.assertEqual(keys, ['__dict__', '__doc__', '__module__',
- '__qualname__', '__weakref__', 'meth'])
+ '__weakref__', 'meth'])
def test_dict_type_with_metaclass(self):
# Testing type of __dict__ when metaclass set...
goto error;
}
}
- else {
- qualname = et->ht_name;
- }
- Py_INCREF(qualname);
- et->ht_qualname = qualname;
+ et->ht_qualname = qualname ? qualname : et->ht_name;
+ Py_INCREF(et->ht_qualname);
+ if (qualname != NULL && PyDict_DelItem(dict, PyId___qualname__.object) < 0)
+ goto error;
/* Set tp_doc to a copy of dict['__doc__'], if the latter is there
and is a string. The __doc__ accessor will first look for tp_doc;