@@ -759,50 +759,28 @@ async def test_attributes_from_entry_config(
759759 assert CONF_STATE_CLASS not in state .attributes
760760
761761
762- async def test_session_rollback_on_error (
763- recorder_mock : Recorder ,
764- hass : HomeAssistant ,
765- freezer : FrozenDateTimeFactory ,
766- caplog : pytest .LogCaptureFixture ,
767- ) -> None :
768- """Test the SQL sensor."""
769- options = {
770- CONF_QUERY : "SELECT 5 as value" ,
771- CONF_COLUMN_NAME : "value" ,
772- CONF_UNIQUE_ID : "very_unique_id" ,
773- }
774- await init_integration (hass , title = "Select value SQL query" , options = options )
775- platforms = async_get_platforms (hass , "sql" )
776- sql_entity = platforms [0 ].entities ["sensor.select_value_sql_query" ]
777-
778- state = hass .states .get ("sensor.select_value_sql_query" )
779- assert state .state == "5"
780- assert state .attributes ["value" ] == 5
781-
782- with (
783- patch .object (
784- sql_entity ,
785- "_lambda_stmt" ,
786- generate_lambda_stmt ("Faulty syntax create operational issue" ),
762+ @pytest .mark .parametrize (
763+ ("config" , "patch_rollback" ),
764+ [
765+ (
766+ {},
767+ "sqlalchemy.orm.session.Session.rollback" ,
787768 ),
788- patch ("sqlalchemy.orm.session.Session.rollback" ) as mock_session_rollback ,
789- ):
790- freezer .tick (timedelta (minutes = 1 ))
791- async_fire_time_changed (hass )
792- await hass .async_block_till_done (wait_background_tasks = True )
793- assert "sqlite3.OperationalError" in caplog .text
794-
795- assert mock_session_rollback .call_count == 1
796-
797-
798- async def test_async_session_rollback_on_error (
769+ (
770+ {CONF_DB_URL : "sqlite+aiosqlite:///" },
771+ "sqlalchemy.ext.asyncio.session.AsyncSession.rollback" ,
772+ ),
773+ ],
774+ )
775+ async def test_session_rollback_on_error (
799776 recorder_mock : Recorder ,
800777 hass : HomeAssistant ,
801778 freezer : FrozenDateTimeFactory ,
802779 caplog : pytest .LogCaptureFixture ,
780+ config : dict [str , Any ],
781+ patch_rollback : str ,
803782) -> None :
804783 """Test the SQL sensor."""
805- config = {CONF_DB_URL : "sqlite+aiosqlite:///" }
806784 options = {
807785 CONF_QUERY : "SELECT 5 as value" ,
808786 CONF_COLUMN_NAME : "value" ,
@@ -824,16 +802,14 @@ async def test_async_session_rollback_on_error(
824802 "_lambda_stmt" ,
825803 generate_lambda_stmt ("Faulty syntax create operational issue" ),
826804 ),
827- patch (
828- "sqlalchemy.ext.asyncio.session.AsyncSession.rollback"
829- ) as mock_async_session_rollback ,
805+ patch (patch_rollback ) as mock_rollback ,
830806 ):
831807 freezer .tick (timedelta (minutes = 1 ))
832808 async_fire_time_changed (hass )
833809 await hass .async_block_till_done (wait_background_tasks = True )
834810 assert "sqlite3.OperationalError" in caplog .text
835811
836- assert mock_async_session_rollback .call_count == 1
812+ assert mock_rollback .call_count == 1
837813
838814
839815async def test_query_recover_from_rollback (
0 commit comments