ci(semgrep): fix false positives (#25823)

This commit is contained in:
Ankush Menat 2021-05-25 14:06:10 +05:30 committed by GitHub
parent 09d9bd19ac
commit 073dcf7e42
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 47 additions and 15 deletions

View File

@ -51,3 +51,11 @@ _(f"what" + f"this is also not cool")
_("") _("")
# ruleid: frappe-translation-empty-string # ruleid: frappe-translation-empty-string
_('') _('')
class Test:
# ok: frappe-translation-python-splitting
def __init__(
args
):
pass

View File

@ -44,8 +44,8 @@ rules:
pattern-either: pattern-either:
- pattern: _(...) + _(...) - pattern: _(...) + _(...)
- pattern: _("..." + "...") - pattern: _("..." + "...")
- pattern-regex: '_\([^\)]*\\\s*' # lines broken by `\` - pattern-regex: '[\s\.]_\([^\)]*\\\s*' # lines broken by `\`
- pattern-regex: '_\(\s*\n' # line breaks allowed by python for using ( ) - pattern-regex: '[\s\.]_\(\s*\n' # line breaks allowed by python for using ( )
message: | message: |
Do not split strings inside translate function. Do not concatenate using translate functions. Do not split strings inside translate function. Do not concatenate using translate functions.
Please refer: https://frappeframework.com/docs/user/en/translations Please refer: https://frappeframework.com/docs/user/en/translations

9
.github/helper/semgrep_rules/ux.js vendored Normal file
View File

@ -0,0 +1,9 @@
// ok: frappe-missing-translate-function-js
frappe.msgprint('{{ _("Both login and password required") }}');
// ruleid: frappe-missing-translate-function-js
frappe.msgprint('What');
// ok: frappe-missing-translate-function-js
frappe.throw(' {{ _("Both login and password required") }}. ');

View File

@ -2,30 +2,30 @@ import frappe
from frappe import msgprint, throw, _ from frappe import msgprint, throw, _
# ruleid: frappe-missing-translate-function # ruleid: frappe-missing-translate-function-python
throw("Error Occured") throw("Error Occured")
# ruleid: frappe-missing-translate-function # ruleid: frappe-missing-translate-function-python
frappe.throw("Error Occured") frappe.throw("Error Occured")
# ruleid: frappe-missing-translate-function # ruleid: frappe-missing-translate-function-python
frappe.msgprint("Useful message") frappe.msgprint("Useful message")
# ruleid: frappe-missing-translate-function # ruleid: frappe-missing-translate-function-python
msgprint("Useful message") msgprint("Useful message")
# ok: frappe-missing-translate-function # ok: frappe-missing-translate-function-python
translatedmessage = _("Hello") translatedmessage = _("Hello")
# ok: frappe-missing-translate-function # ok: frappe-missing-translate-function-python
throw(translatedmessage) throw(translatedmessage)
# ok: frappe-missing-translate-function # ok: frappe-missing-translate-function-python
msgprint(translatedmessage) msgprint(translatedmessage)
# ok: frappe-missing-translate-function # ok: frappe-missing-translate-function-python
msgprint(_("Helpful message")) msgprint(_("Helpful message"))
# ok: frappe-missing-translate-function # ok: frappe-missing-translate-function-python
frappe.throw(_("Error occured")) frappe.throw(_("Error occured"))

View File

@ -1,15 +1,30 @@
rules: rules:
- id: frappe-missing-translate-function - id: frappe-missing-translate-function-python
pattern-either: pattern-either:
- patterns: - patterns:
- pattern: frappe.msgprint("...", ...) - pattern: frappe.msgprint("...", ...)
- pattern-not: frappe.msgprint(_("..."), ...) - pattern-not: frappe.msgprint(_("..."), ...)
- pattern-not: frappe.msgprint(__("..."), ...)
- patterns: - patterns:
- pattern: frappe.throw("...", ...) - pattern: frappe.throw("...", ...)
- pattern-not: frappe.throw(_("..."), ...) - pattern-not: frappe.throw(_("..."), ...)
- pattern-not: frappe.throw(__("..."), ...)
message: | message: |
All user facing text must be wrapped in translate function. Please refer to translation documentation. https://frappeframework.com/docs/user/en/guides/basics/translations All user facing text must be wrapped in translate function. Please refer to translation documentation. https://frappeframework.com/docs/user/en/guides/basics/translations
languages: [python, javascript, json] languages: [python]
severity: ERROR
- id: frappe-missing-translate-function-js
pattern-either:
- patterns:
- pattern: frappe.msgprint("...", ...)
- pattern-not: frappe.msgprint(__("..."), ...)
# ignore microtemplating e.g. msgprint("{{ _("server side translation") }}")
- pattern-not: frappe.msgprint("=~/\{\{.*\_.*\}\}/i", ...)
- patterns:
- pattern: frappe.throw("...", ...)
- pattern-not: frappe.throw(__("..."), ...)
# ignore microtemplating
- pattern-not: frappe.throw("=~/\{\{.*\_.*\}\}/i", ...)
message: |
All user facing text must be wrapped in translate function. Please refer to translation documentation. https://frappeframework.com/docs/user/en/guides/basics/translations
languages: [javascript]
severity: ERROR severity: ERROR