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

Method test_validator_backrefs

test/orm/test_validators.py:315–449  ·  view source on GitHub ↗
(self, include_backrefs, include_removes)

Source from the content-addressed store, hash-verified

313 @testing.variation("include_backrefs", [True, False, "default"])
314 @testing.variation("include_removes", [True, False, "default"])
315 def test_validator_backrefs(self, include_backrefs, include_removes):
316 users, addresses = (self.tables.users, self.tables.addresses)
317 canary = Mock()
318
319 need_remove_param = (
320 bool(include_removes) and not include_removes.default
321 )
322 validate_kw = {}
323 if not include_removes.default:
324 validate_kw["include_removes"] = bool(include_removes)
325 if not include_backrefs.default:
326 validate_kw["include_backrefs"] = bool(include_backrefs)
327
328 expect_include_backrefs = include_backrefs.default or bool(
329 include_backrefs
330 )
331 expect_include_removes = (
332 bool(include_removes) and not include_removes.default
333 )
334
335 class User(ComparableEntity):
336 if need_remove_param:
337
338 @validates("addresses", **validate_kw)
339 def validate_address(self, key, item, remove):
340 canary(key, item, remove)
341 return item
342
343 else:
344
345 @validates("addresses", **validate_kw)
346 def validate_address(self, key, item):
347 canary(key, item)
348 return item
349
350 class Address(ComparableEntity):
351 if need_remove_param:
352
353 @validates("user", **validate_kw)
354 def validate_user(self, key, item, remove):
355 canary(key, item, remove)
356 return item
357
358 else:
359
360 @validates("user", **validate_kw)
361 def validate_user(self, key, item):
362 canary(key, item)
363 return item
364
365 self.mapper_registry.map_imperatively(
366 User,
367 users,
368 properties={"addresses": relationship(Address, backref="user")},
369 )
370 self.mapper_registry.map_imperatively(Address, addresses)
371
372 u1 = User()

Callers

nothing calls this directly

Calls 8

relationshipFunction · 0.90
eq_Function · 0.90
callFunction · 0.85
map_imperativelyMethod · 0.80
UserClass · 0.70
AddressClass · 0.70
appendMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected