mirror of https://github.com/python/cpython
return views from dict proxy items/values/keys #10630
This commit is contained in:
parent
b5d793309e
commit
0eb7f86320
|
@ -4233,20 +4233,26 @@ class DictProxyTests(unittest.TestCase):
|
||||||
self.C = C
|
self.C = C
|
||||||
|
|
||||||
def test_iter_keys(self):
|
def test_iter_keys(self):
|
||||||
# Testing dict-proxy iterkeys...
|
# Testing dict-proxy keys...
|
||||||
keys = [ key for key in self.C.__dict__.keys() ]
|
it = self.C.__dict__.keys()
|
||||||
|
self.assertNotIsInstance(it, list)
|
||||||
|
keys = list(it)
|
||||||
keys.sort()
|
keys.sort()
|
||||||
self.assertEqual(keys, ['__dict__', '__doc__', '__module__',
|
self.assertEqual(keys, ['__dict__', '__doc__', '__module__',
|
||||||
'__weakref__', 'meth'])
|
'__weakref__', 'meth'])
|
||||||
|
|
||||||
def test_iter_values(self):
|
def test_iter_values(self):
|
||||||
# Testing dict-proxy itervalues...
|
# Testing dict-proxy values...
|
||||||
values = [ values for values in self.C.__dict__.values() ]
|
it = self.C.__dict__.values()
|
||||||
|
self.assertNotIsInstance(it, list)
|
||||||
|
values = list(it)
|
||||||
self.assertEqual(len(values), 5)
|
self.assertEqual(len(values), 5)
|
||||||
|
|
||||||
def test_iter_items(self):
|
def test_iter_items(self):
|
||||||
# Testing dict-proxy iteritems...
|
# Testing dict-proxy iteritems...
|
||||||
keys = [ key for (key, value) in self.C.__dict__.items() ]
|
it = self.C.__dict__.items()
|
||||||
|
self.assertNotIsInstance(it, list)
|
||||||
|
keys = [item[0] for item in it]
|
||||||
keys.sort()
|
keys.sort()
|
||||||
self.assertEqual(keys, ['__dict__', '__doc__', '__module__',
|
self.assertEqual(keys, ['__dict__', '__doc__', '__module__',
|
||||||
'__weakref__', 'meth'])
|
'__weakref__', 'meth'])
|
||||||
|
|
|
@ -710,19 +710,19 @@ proxy_get(proxyobject *pp, PyObject *args)
|
||||||
static PyObject *
|
static PyObject *
|
||||||
proxy_keys(proxyobject *pp)
|
proxy_keys(proxyobject *pp)
|
||||||
{
|
{
|
||||||
return PyMapping_Keys(pp->dict);
|
return PyObject_CallMethod(pp->dict, "keys", NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
proxy_values(proxyobject *pp)
|
proxy_values(proxyobject *pp)
|
||||||
{
|
{
|
||||||
return PyMapping_Values(pp->dict);
|
return PyObject_CallMethod(pp->dict, "values", NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
proxy_items(proxyobject *pp)
|
proxy_items(proxyobject *pp)
|
||||||
{
|
{
|
||||||
return PyMapping_Items(pp->dict);
|
return PyObject_CallMethod(pp->dict, "items", NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
|
|
Loading…
Reference in New Issue