mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2025-11-29 17:38:24 +08:00
chore(Apps/Codestyle): add new checks for SQL files (#21026)
This commit is contained in:
@@ -15,6 +15,7 @@ results = {
|
|||||||
"Multiple blank lines check": "Passed",
|
"Multiple blank lines check": "Passed",
|
||||||
"Trailing whitespace check": "Passed",
|
"Trailing whitespace check": "Passed",
|
||||||
"SQL codestyle check": "Passed",
|
"SQL codestyle check": "Passed",
|
||||||
|
"INSERT safety usage check": "Passed",
|
||||||
"Missing semicolon check": "Passed"
|
"Missing semicolon check": "Passed"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,6 +44,7 @@ def parsing_file(files: list) -> None:
|
|||||||
multiple_blank_lines_check(file, file_path)
|
multiple_blank_lines_check(file, file_path)
|
||||||
trailing_whitespace_check(file, file_path)
|
trailing_whitespace_check(file, file_path)
|
||||||
sql_check(file, file_path)
|
sql_check(file, file_path)
|
||||||
|
insert_safety_check(file, file_path)
|
||||||
semicolon_check(file, file_path)
|
semicolon_check(file, file_path)
|
||||||
except UnicodeDecodeError:
|
except UnicodeDecodeError:
|
||||||
print(f"\nCould not decode file {file_path}")
|
print(f"\nCould not decode file {file_path}")
|
||||||
@@ -108,6 +110,10 @@ def sql_check(file: io, file_path: str) -> None:
|
|||||||
print(
|
print(
|
||||||
f"DON'T EDIT broadcast_text TABLE UNLESS YOU KNOW WHAT YOU ARE DOING!\nThis error can safely be ignored if the changes are approved to be sniffed: {file_path} at line {line_number}")
|
f"DON'T EDIT broadcast_text TABLE UNLESS YOU KNOW WHAT YOU ARE DOING!\nThis error can safely be ignored if the changes are approved to be sniffed: {file_path} at line {line_number}")
|
||||||
check_failed = True
|
check_failed = True
|
||||||
|
if "EntryOrGuid" in line:
|
||||||
|
print(
|
||||||
|
f"Please use entryorguid syntax instead of EntryOrgGuid in {file_path} at line {line_number}\nWe recommend to use keira to have the right syntax in auto-query generation")
|
||||||
|
check_failed = True
|
||||||
if [match for match in [';;'] if match in line]:
|
if [match for match in [';;'] if match in line]:
|
||||||
print(
|
print(
|
||||||
f"Double semicolon (;;) found in {file_path} at line {line_number}")
|
f"Double semicolon (;;) found in {file_path} at line {line_number}")
|
||||||
@@ -128,6 +134,24 @@ def sql_check(file: io, file_path: str) -> None:
|
|||||||
error_handler = True
|
error_handler = True
|
||||||
results["SQL codestyle check"] = "Failed"
|
results["SQL codestyle check"] = "Failed"
|
||||||
|
|
||||||
|
def insert_safety_check(file: io, file_path: str) -> None:
|
||||||
|
global error_handler, results
|
||||||
|
file.seek(0) # Reset file pointer to the beginning
|
||||||
|
check_failed = False
|
||||||
|
previous_line = ""
|
||||||
|
|
||||||
|
# Parse all the file
|
||||||
|
for line_number, line in enumerate(file, start = 1):
|
||||||
|
if "INSERT" in line and "DELETE" not in previous_line:
|
||||||
|
print(f"No DELETE keyword found after the INSERT in {file_path} at line {line_number}\nIf this error is intended, please advert a maintainer")
|
||||||
|
check_failed = True
|
||||||
|
previous_line = line
|
||||||
|
|
||||||
|
# Handle the script error and update the result output
|
||||||
|
if check_failed:
|
||||||
|
error_handler = True
|
||||||
|
results["INSERT safety usage check"] = "Failed"
|
||||||
|
|
||||||
def semicolon_check(file: io, file_path: str) -> None:
|
def semicolon_check(file: io, file_path: str) -> None:
|
||||||
global error_handler, results
|
global error_handler, results
|
||||||
file.seek(0) # Reset file pointer to the beginning
|
file.seek(0) # Reset file pointer to the beginning
|
||||||
|
|||||||
Reference in New Issue
Block a user