MCPcopy Create free account
hub / github.com/sqlalchemy/sqlalchemy / _test_set_bulk

Method _test_set_bulk

test/orm/test_collection.py:1029–1079  ·  view source on GitHub ↗
(self, typecallable, creator=None)

Source from the content-addressed store, hash-verified

1027 assert True
1028
1029 def _test_set_bulk(self, typecallable, creator=None):
1030 if creator is None:
1031 creator = self.entity_maker
1032
1033 class Foo:
1034 pass
1035
1036 canary = Canary()
1037 instrumentation.register_class(Foo)
1038 d = _register_attribute(
1039 Foo,
1040 "attr",
1041 uselist=True,
1042 typecallable=typecallable,
1043 useobject=True,
1044 )
1045 canary.listen(d)
1046
1047 obj = Foo()
1048 direct = obj.attr
1049
1050 e1 = creator()
1051 obj.attr.add(e1)
1052
1053 like_me = typecallable()
1054 e2 = creator()
1055 like_me.add(e2)
1056
1057 self.assert_(obj.attr is direct)
1058 obj.attr = like_me
1059 self.assert_(obj.attr is not direct)
1060 self.assert_(obj.attr is not like_me)
1061 self.assert_(obj.attr == {e2})
1062 self.assert_(e1 in canary.removed)
1063 self.assert_(e2 in canary.added)
1064
1065 e3 = creator()
1066 real_set = {e3}
1067 obj.attr = real_set
1068 self.assert_(obj.attr is not real_set)
1069 self.assert_(obj.attr == {e3})
1070 self.assert_(e2 in canary.removed)
1071 self.assert_(e3 in canary.added)
1072
1073 e4 = creator()
1074 try:
1075 obj.attr = [e4]
1076 self.assert_(False)
1077 except TypeError:
1078 self.assert_(e4 not in canary.data)
1079 self.assert_(e3 in canary.data)
1080
1081 def _test_set_dataclasses(self, typecallable):
1082 creator = self.SimpleComparableEntity

Callers 4

test_setMethod · 0.95
test_set_subclassMethod · 0.95
test_set_duckMethod · 0.95
test_set_emulatesMethod · 0.95

Calls 7

listenMethod · 0.95
CanaryClass · 0.85
creatorFunction · 0.85
_register_attributeFunction · 0.70
FooClass · 0.70
addMethod · 0.45
assert_Method · 0.45

Tested by

no test coverage detected