MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_dict_duck

Method test_dict_duck

test/orm/test_collection.py:1553–1603  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1551 self.assert_(getattr(MyOrdered, "_sa_instrumented") == id(MyOrdered))
1552
1553 def test_dict_duck(self):
1554 class DictLike:
1555 def __init__(self, *args):
1556 self.data = dict(*args)
1557
1558 @collection.appender
1559 @collection.replaces(1)
1560 def set(self, item):
1561 current = self.data.get(item.a, None)
1562 self.data[item.a] = item
1563 return current
1564
1565 @collection.remover
1566 def _remove(self, item):
1567 del self.data[item.a]
1568
1569 def __setitem__(self, key, value):
1570 self.data[key] = value
1571
1572 def __getitem__(self, key):
1573 return self.data[key]
1574
1575 def __delitem__(self, key):
1576 del self.data[key]
1577
1578 def values(self):
1579 return list(self.data.values())
1580
1581 def __contains__(self, key):
1582 return key in self.data
1583
1584 @collection.iterator
1585 def itervalues(self):
1586 return iter(self.data.values())
1587
1588 __hash__ = object.__hash__
1589
1590 def __eq__(self, other):
1591 return self.data == other
1592
1593 def __repr__(self):
1594 return "DictLike(%s)" % repr(self.data)
1595
1596 self._test_adapter(
1597 DictLike, self.dictable_entity, to_set=lambda c: set(c.values())
1598 )
1599 self._test_dict(DictLike)
1600 self._test_dict_bulk(DictLike)
1601 self._test_dict_wo_mutation(DictLike)
1602 self._test_dict_dataclasses(DictLike)
1603 self.assert_(getattr(DictLike, "_sa_instrumented") == id(DictLike))
1604
1605 def test_dict_emulates(self):
1606 class DictIsh:

Callers

nothing calls this directly

Calls 7

_test_adapterMethod · 0.95
_test_dictMethod · 0.95
_test_dict_bulkMethod · 0.95
valuesMethod · 0.45
assert_Method · 0.45

Tested by

no test coverage detected