(self)
| 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: |
nothing calls this directly
no test coverage detected