def test_combined_checks(hass_recorder): """Run Checks on the open database.""" hass = hass_recorder() db_integrity_check = False cursor = hass.data[DATA_INSTANCE].engine.raw_connection().cursor() assert (util.run_checks_on_open_db("fake_db_path", cursor, db_integrity_check) is None) # We are patching recorder.util here in order # to avoid creating the full database on disk with patch( "homeassistant.components.recorder.util.last_run_was_recently_clean" ): assert (util.run_checks_on_open_db("fake_db_path", cursor, db_integrity_check) is None) with patch( "homeassistant.components.recorder.util.last_run_was_recently_clean", side_effect=sqlite3.DatabaseError, ), pytest.raises(sqlite3.DatabaseError): util.run_checks_on_open_db("fake_db_path", cursor, db_integrity_check) cursor.execute("DROP TABLE events;") with pytest.raises(sqlite3.DatabaseError): util.run_checks_on_open_db("fake_db_path", cursor, db_integrity_check)
def test_combined_checks(hass_recorder, caplog): """Run Checks on the open database.""" hass = hass_recorder() cursor = hass.data[DATA_INSTANCE].engine.raw_connection().cursor() assert util.run_checks_on_open_db("fake_db_path", cursor) is None assert "could not validate that the sqlite3 database" in caplog.text caplog.clear() # We are patching recorder.util here in order # to avoid creating the full database on disk with patch("homeassistant.components.recorder.util.basic_sanity_check", return_value=False): caplog.clear() assert util.run_checks_on_open_db("fake_db_path", cursor) is None assert "could not validate that the sqlite3 database" in caplog.text # We are patching recorder.util here in order # to avoid creating the full database on disk with patch( "homeassistant.components.recorder.util.last_run_was_recently_clean" ): caplog.clear() assert util.run_checks_on_open_db("fake_db_path", cursor) is None assert "restarted cleanly and passed the basic sanity check" in caplog.text caplog.clear() with patch( "homeassistant.components.recorder.util.last_run_was_recently_clean", side_effect=sqlite3.DatabaseError, ), pytest.raises(sqlite3.DatabaseError): util.run_checks_on_open_db("fake_db_path", cursor) caplog.clear() with patch( "homeassistant.components.recorder.util.last_run_was_recently_clean", side_effect=sqlite3.DatabaseError, ), pytest.raises(sqlite3.DatabaseError): util.run_checks_on_open_db("fake_db_path", cursor) cursor.execute("DROP TABLE events;") caplog.clear() with pytest.raises(sqlite3.DatabaseError): util.run_checks_on_open_db("fake_db_path", cursor) caplog.clear() with pytest.raises(sqlite3.DatabaseError): util.run_checks_on_open_db("fake_db_path", cursor)