MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_o2m

Method test_o2m

test/orm/test_attributes.py:1188–1234  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1186 self.assert_(c.students == [s2, s3])
1187
1188 def test_o2m(self):
1189 class Post:
1190 pass
1191
1192 class Blog:
1193 pass
1194
1195 instrumentation.register_class(Post)
1196 instrumentation.register_class(Blog)
1197 _register_attribute(
1198 Post,
1199 "blog",
1200 uselist=False,
1201 backref="posts",
1202 trackparent=True,
1203 useobject=True,
1204 )
1205 _register_attribute(
1206 Blog,
1207 "posts",
1208 uselist=True,
1209 backref="blog",
1210 trackparent=True,
1211 useobject=True,
1212 )
1213 b = Blog()
1214 p1, p2, p3 = (Post(), Post(), Post())
1215 b.posts.append(p1)
1216 b.posts.append(p2)
1217 b.posts.append(p3)
1218 self.assert_(b.posts == [p1, p2, p3])
1219 self.assert_(p2.blog is b)
1220
1221 p3.blog = None
1222 self.assert_(b.posts == [p1, p2])
1223 p4 = Post()
1224 p4.blog = b
1225 self.assert_(b.posts == [p1, p2, p4])
1226
1227 p4.blog = b
1228 p4.blog = b
1229 self.assert_(b.posts == [p1, p2, p4])
1230
1231 # assert no failure removing None
1232 p5 = Post()
1233 p5.blog = None
1234 del p5.blog
1235
1236 def test_o2o(self):
1237 class Port:

Callers

nothing calls this directly

Calls 5

_register_attributeFunction · 0.70
BlogClass · 0.70
PostClass · 0.70
appendMethod · 0.45
assert_Method · 0.45

Tested by

no test coverage detected