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