def test_validate_or_move_away_sqlite_database_without_integrity_check( hass, tmpdir, caplog): """Ensure a malformed sqlite database is moved away. The quick_check is skipped, but we can still find corruption if the whole database is unreadable """ db_integrity_check = False test_dir = tmpdir.mkdir("test_validate_or_move_away_sqlite_database") test_db_file = f"{test_dir}/broken.db" dburl = f"{SQLITE_URL_PREFIX}{test_db_file}" util.validate_sqlite_database(test_db_file, db_integrity_check) is True assert os.path.exists(test_db_file) is True assert (util.validate_or_move_away_sqlite_database( dburl, db_integrity_check) is False) _corrupt_db_file(test_db_file) assert util.validate_sqlite_database(dburl, db_integrity_check) is False assert (util.validate_or_move_away_sqlite_database( dburl, db_integrity_check) is False) assert "corrupt or malformed" in caplog.text assert util.validate_sqlite_database(dburl, db_integrity_check) is False assert util.validate_or_move_away_sqlite_database( dburl, db_integrity_check) is True
def test_validate_or_move_away_sqlite_database_with_integrity_check( hass, tmpdir, caplog): """Ensure a malformed sqlite database is moved away. A quick_check is run here """ db_integrity_check = True test_dir = tmpdir.mkdir("test_validate_or_move_away_sqlite_database") test_db_file = f"{test_dir}/broken.db" dburl = f"{SQLITE_URL_PREFIX}{test_db_file}" util.validate_sqlite_database(test_db_file, db_integrity_check) is True assert os.path.exists(test_db_file) is True assert (util.validate_or_move_away_sqlite_database( dburl, db_integrity_check) is False) _corrupt_db_file(test_db_file) assert util.validate_sqlite_database(dburl, db_integrity_check) is False assert (util.validate_or_move_away_sqlite_database( dburl, db_integrity_check) is False) assert "corrupt or malformed" in caplog.text assert util.validate_sqlite_database(dburl, db_integrity_check) is False assert util.validate_or_move_away_sqlite_database( dburl, db_integrity_check) is True
def test_validate_or_move_away_sqlite_database(hass, tmpdir, caplog): """Ensure a malformed sqlite database is moved away.""" test_dir = tmpdir.mkdir("test_validate_or_move_away_sqlite_database") test_db_file = f"{test_dir}/broken.db" dburl = f"{SQLITE_URL_PREFIX}{test_db_file}" util.validate_sqlite_database(test_db_file) is True assert os.path.exists(test_db_file) is True assert util.validate_or_move_away_sqlite_database(dburl) is True _corrupt_db_file(test_db_file) assert util.validate_or_move_away_sqlite_database(dburl) is False assert "corrupt or malformed" in caplog.text assert util.validate_or_move_away_sqlite_database(dburl) is True