MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_bind_through_execute

Method test_bind_through_execute

test/orm/test_bind.py:415–492  ·  view source on GitHub ↗
(
        self, statement, expected_get_bind_args, expected_engine_name
    )

Source from the content-addressed store, hash-verified

413 ),
414 )
415 def test_bind_through_execute(
416 self, statement, expected_get_bind_args, expected_engine_name
417 ):
418 users, Address, addresses, User = (
419 self.tables.users,
420 self.classes.Address,
421 self.tables.addresses,
422 self.classes.User,
423 )
424
425 self.mapper_registry.map_imperatively(
426 User, users, properties={"addresses": relationship(Address)}
427 )
428 self.mapper_registry.map_imperatively(Address, addresses)
429
430 e1 = engines.testing_engine()
431 e2 = engines.testing_engine()
432 e3 = engines.testing_engine()
433
434 canary = mock.Mock()
435
436 class GetBindSession(Session):
437 def _connection_for_bind(self, bind, **kw):
438 canary._connection_for_bind(bind, **kw)
439 return mock.Mock()
440
441 def get_bind(self, **kw):
442 canary.get_bind(**kw)
443 return Session.get_bind(self, **kw)
444
445 sess = GetBindSession(e3)
446 sess.bind_mapper(User, e1)
447 sess.bind_mapper(Address, e2)
448
449 lambda_args = dict(
450 session=sess,
451 User=User,
452 Address=Address,
453 e1=e1,
454 e2=e2,
455 e3=e3,
456 addresses=addresses,
457 )
458 statement = testing.resolve_lambda(statement, **lambda_args)
459
460 expected_get_bind_args = testing.resolve_lambda(
461 expected_get_bind_args, **lambda_args
462 )
463
464 engine = {"e1": e1, "e2": e2, "e3": e3}[expected_engine_name]
465
466 with (
467 mock.patch(
468 "sqlalchemy.orm.context._ORMCompileState."
469 "orm_setup_cursor_result"
470 ),
471 mock.patch(
472 "sqlalchemy.orm.context._ORMCompileState.orm_execute_statement"

Callers

nothing calls this directly

Calls 10

relationshipFunction · 0.90
eq_Function · 0.90
GetBindSessionClass · 0.85
map_imperativelyMethod · 0.80
testing_engineMethod · 0.80
bind_mapperMethod · 0.45
executeMethod · 0.45
get_bindMethod · 0.45
_connection_for_bindMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected