MCPcopy Create free account
hub / github.com/zzzeek/sqlalchemy / test_initialize_connect_calls

Method test_initialize_connect_calls

test/engine/test_execute.py:3834–3901  ·  view source on GitHub ↗

test for :ticket:`5497`, on_connect not called twice

(self)

Source from the content-addressed store, hash-verified

3832
3833 @testing.only_on("sqlite+pysqlite")
3834 def test_initialize_connect_calls(self):
3835 """test for :ticket:`5497`, on_connect not called twice"""
3836
3837 m1 = Mock()
3838 cls_ = testing.db.dialect.__class__
3839
3840 class SomeDialect(cls_):
3841 def initialize(self, connection):
3842 super().initialize(connection)
3843 m1.initialize(connection)
3844
3845 def on_connect(self):
3846 oc = super().on_connect()
3847
3848 def my_on_connect(conn):
3849 if oc:
3850 oc(conn)
3851 m1.on_connect(conn)
3852
3853 return my_on_connect
3854
3855 u1 = Mock(
3856 username=None,
3857 password=None,
3858 host=None,
3859 port=None,
3860 query={},
3861 database=None,
3862 _instantiate_plugins=lambda kw: (u1, [], kw),
3863 _get_entrypoint=Mock(
3864 return_value=Mock(get_dialect_cls=lambda u: SomeDialect)
3865 ),
3866 )
3867 eng = create_engine(u1, poolclass=QueuePool)
3868 # make sure other dialects aren't getting pulled in here
3869 eq_(eng.name, "sqlite")
3870 c = eng.connect()
3871 dbapi_conn_one = c.connection.dbapi_connection
3872 c.close()
3873
3874 eq_(
3875 m1.mock_calls,
3876 [call.on_connect(dbapi_conn_one), call.initialize(mock.ANY)],
3877 )
3878
3879 c = eng.connect()
3880
3881 eq_(
3882 m1.mock_calls,
3883 [call.on_connect(dbapi_conn_one), call.initialize(mock.ANY)],
3884 )
3885
3886 c2 = eng.connect()
3887 dbapi_conn_two = c2.connection.dbapi_connection
3888
3889 is_not(dbapi_conn_one, dbapi_conn_two)
3890
3891 eq_(

Callers

nothing calls this directly

Calls 7

create_engineFunction · 0.90
eq_Function · 0.90
is_notFunction · 0.90
connectMethod · 0.45
closeMethod · 0.45
on_connectMethod · 0.45
initializeMethod · 0.45

Tested by

no test coverage detected