def test_extensions_cm(): session = mock.Mock(_kwargs=dict(extensions=[])) extension = mock.Mock() with substitute_extensions(session, [extension]) as sess: assert session.flush.call_count == 1 assert session.close.call_count == 1 assert sess == session assert sess._kwargs['extensions'] == [extension] assert session.flush.call_count == 2 assert session.close.call_count == 2 assert session._kwargs['extensions'] == []
def test_extensions_cm_flush_raises(): session = mock.Mock(_kwargs=dict(extensions=[])) extension = mock.Mock() with td.raises(AttributeError): with substitute_extensions(session, [extension]) as sess: session.flush.side_effect = AttributeError assert session.flush.call_count == 1 assert session.close.call_count == 1 assert sess == session assert sess._kwargs['extensions'] == [extension] assert session.flush.call_count == 2 assert session.close.call_count == 1 assert session._kwargs['extensions'] == []