diff options
Diffstat (limited to 'apps/codestyle/codestyle-sql.py')
-rw-r--r-- | apps/codestyle/codestyle-sql.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/apps/codestyle/codestyle-sql.py b/apps/codestyle/codestyle-sql.py index d93646d091..f15dceed6c 100644 --- a/apps/codestyle/codestyle-sql.py +++ b/apps/codestyle/codestyle-sql.py @@ -15,6 +15,7 @@ results = { "Multiple blank lines check": "Passed", "Trailing whitespace check": "Passed", "SQL codestyle check": "Passed", + "INSERT safety usage check": "Passed", "Missing semicolon check": "Passed" } @@ -43,6 +44,7 @@ def parsing_file(files: list) -> None: multiple_blank_lines_check(file, file_path) trailing_whitespace_check(file, file_path) sql_check(file, file_path) + insert_safety_check(file, file_path) semicolon_check(file, file_path) except UnicodeDecodeError: print(f"\nCould not decode file {file_path}") @@ -108,6 +110,10 @@ def sql_check(file: io, file_path: str) -> None: 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}") 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]: print( 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 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: global error_handler, results file.seek(0) # Reset file pointer to the beginning |