webperf-core is an open-source testing suite tailored to help you improve your digital presence in areas like web performance, security and accessibility to email best practice using many small improvements.
***** Module default
default.py:13:0: C0301: Line too long (814/100) (line-too-long)
default.py:59:0: C0301: Line too long (169/100) (line-too-long)
default.py:64:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens)
default.py:84:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens)
default.py:90:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens)
default.py:93:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens)
default.py:102:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens)
default.py:105:0: C0301: Line too long (106/100) (line-too-long)
default.py:141:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens)
default.py:143:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens)
default.py:148:0: C0325: Unnecessary parens after 'elif' keyword (superfluous-parens)
default.py:150:0: C0325: Unnecessary parens after 'elif' keyword (superfluous-parens)
default.py:152:0: C0325: Unnecessary parens after 'elif' keyword (superfluous-parens)
default.py:182:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens)
default.py:186:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens)
default.py:189:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens)
default.py:192:0: C0325: Unnecessary parens after 'elif' keyword (superfluous-parens)
default.py:195:0: C0325: Unnecessary parens after 'elif' keyword (superfluous-parens)
default.py:198:0: C0301: Line too long (106/100) (line-too-long)
default.py:199:0: C0303: Trailing whitespace (trailing-whitespace)
default.py:200:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens)
default.py:203:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens)
default.py:205:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens)
default.py:207:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens)
default.py:1:0: C0114: Missing module docstring (missing-module-docstring)
default.py:6:0: E0401: Unable to import 'config' (import-error)
default.py:12:0: C0116: Missing function or method docstring (missing-function-docstring)
default.py:13:7: R0916: Too many boolean expressions in if statement (19/5) (too-many-boolean-expressions)
default.py:13:4: R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return)
default.py:13:7: E1101: Module 'utils' has no 'TEST_HTML' member (no-member)
default.py:13:41: E1101: Module 'utils' has no 'TEST_PAGE_NOT_FOUND' member (no-member)
default.py:13:85: E1101: Module 'utils' has no 'TEST_CSS' member (no-member)
default.py:13:118: E1101: Module 'utils' has no 'TEST_WEBBKOLL' member (no-member)
default.py:13:156: E1101: Module 'utils' has no 'TEST_GOOGLE_LIGHTHOUSE' member (no-member)
default.py:13:203: E1101: Module 'utils' has no 'TEST_GOOGLE_LIGHTHOUSE_PWA' member (no-member)
default.py:13:254: E1101: Module 'utils' has no 'TEST_GOOGLE_LIGHTHOUSE_A11Y' member (no-member)
default.py:13:306: E1101: Module 'utils' has no 'TEST_GOOGLE_LIGHTHOUSE_SEO' member (no-member)
default.py:13:357: E1101: Module 'utils' has no 'TEST_GOOGLE_LIGHTHOUSE_BEST_PRACTICE' member (no-member)
default.py:13:418: E1101: Module 'utils' has no 'TEST_STANDARD_FILES' member (no-member)
default.py:13:462: E1101: Module 'utils' has no 'TEST_YELLOW_LAB_TOOLS' member (no-member)
default.py:13:508: E1101: Module 'utils' has no 'TEST_PA11Y' member (no-member)
default.py:13:543: E1101: Module 'utils' has no 'TEST_HTTP' member (no-member)
default.py:13:577: E1101: Module 'utils' has no 'TEST_ENERGY_EFFICIENCY' member (no-member)
default.py:13:624: E1101: Module 'utils' has no 'TEST_TRACKING' member (no-member)
default.py:13:662: E1101: Module 'utils' has no 'TEST_SITESPEED' member (no-member)
default.py:13:701: E1101: Module 'utils' has no 'TEST_EMAIL' member (no-member)
default.py:13:736: E1101: Module 'utils' has no 'TEST_SOFTWARE' member (no-member)
default.py:13:774: E1101: Module 'utils' has no 'TEST_A11Y_STATEMENT' member (no-member)
default.py:14:15: R1734: Consider using [] instead of list() (use-list-literal)
default.py:19:0: R0914: Too many local variables (31/15) (too-many-locals)
default.py:38:22: E1101: Module 'utils' has no 'TEST_ALL' member (no-member)
default.py:39:12: R1734: Consider using [] instead of list() (use-list-literal)
default.py:48:4: C0103: Variable name "langCode" doesn't conform to snake_case naming style (invalid-name)
default.py:64:8: C2801: Unnecessarily calls dunder method len. Use len built-in function. (unnecessary-dunder-call)
default.py:78:12: C0415: Import outside toplevel (os) (import-outside-toplevel)
default.py:79:12: C0103: Variable name "availableLanguages" doesn't conform to snake_case naming style (invalid-name)
default.py:79:33: R1734: Consider using [] instead of list() (use-list-literal)
default.py:80:12: C0103: Variable name "localeDirs" doesn't conform to snake_case naming style (invalid-name)
default.py:81:12: C0103: Variable name "foundLang" doesn't conform to snake_case naming style (invalid-name)
default.py:83:16: C0103: Variable name "localeName" doesn't conform to snake_case naming style (invalid-name)
default.py:87:16: C0103: Variable name "languageSubDirectory" doesn't conform to snake_case naming style (invalid-name)
default.py:94:24: C0103: Variable name "langCode" doesn't conform to snake_case naming style (invalid-name)
default.py:95:24: C0103: Variable name "foundLang" doesn't conform to snake_case naming style (invalid-name)
default.py:111:19: W0718: Catching too general exception Exception (broad-exception-caught)
default.py:112:29: R1734: Consider using [] instead of list() (use-list-literal)
default.py:147:16: C0415: Import outside toplevel (engines.sqlite.read_sites, engines.sqlite.add_site, engines.sqlite.delete_site) (import-outside-toplevel)
default.py:149:16: C0415: Import outside toplevel (engines.csv.read_sites, engines.csv.add_site, engines.csv.delete_site) (import-outside-toplevel)
default.py:151:16: C0415: Import outside toplevel (engines.sitemap.read_sites, engines.sitemap.add_site, engines.sitemap.delete_site) (import-outside-toplevel)
default.py:153:16: C0415: Import outside toplevel (engines.sitemap.read_sites, engines.sitemap.add_site, engines.sitemap.delete_site) (import-outside-toplevel)
default.py:155:16: C0415: Import outside toplevel (engines.sitespeed_result.read_sites, engines.sitespeed_result.add_site, engines.sitespeed_result.delete_site) (import-outside-toplevel)
default.py:157:16: C0415: Import outside toplevel (engines.webperf.read_sites, engines.webperf.add_site, engines.webperf.delete_site) (import-outside-toplevel)
default.py:159:16: C0415: Import outside toplevel (engines.json.read_sites, engines.json.add_site, engines.json.delete_site) (import-outside-toplevel)
default.py:160:12: W0107: Unnecessary pass statement (unnecessary-pass)
default.py:164:19: W0718: Catching too general exception Exception (broad-exception-caught)
default.py:167:12: W0107: Unnecessary pass statement (unnecessary-pass)
default.py:171:19: W0718: Catching too general exception Exception (broad-exception-caught)
default.py:174:12: W0107: Unnecessary pass statement (unnecessary-pass)
default.py:177:12: W0107: Unnecessary pass statement (unnecessary-pass)
default.py:180:12: W0107: Unnecessary pass statement (unnecessary-pass)
default.py:195:10: C1802: Do not use len(SEQUENCE) without comparison to determine if a sequence is empty (use-implicit-booleaness-not-len)
default.py:197:23: E1101: Module 'utils' has no 'test_sites' member (no-member)
default.py:208:16: C0415: Import outside toplevel (engines.csv.write_tests) (import-outside-toplevel)
default.py:210:16: C0415: Import outside toplevel (engines.gov.write_tests) (import-outside-toplevel)
default.py:212:16: C0415: Import outside toplevel (engines.sql.write_tests) (import-outside-toplevel)
default.py:214:16: C0415: Import outside toplevel (engines.sqlite.write_tests) (import-outside-toplevel)
default.py:216:16: C0415: Import outside toplevel (engines.json.write_tests) (import-outside-toplevel)
default.py:19:0: R0912: Too many branches (46/12) (too-many-branches)
default.py:19:0: R0915: Too many statements (153/50) (too-many-statements)
default.py:58:14: W0612: Unused variable 'args' (unused-variable)
default.py:226:0: W0105: String statement has no effect (pointless-string-statement)
default.py:6:0: C0411: third party import "config" should be placed before first party import "models.Sites" (wrong-import-order)
default.py:7:0: C0411: standard import "gettext" should be placed before third party import "config" and first party import "models.Sites" (wrong-import-order)
default.py:4:0: W0611: Unused import datetime (unused-import)
default.py:5:0: W0611: Unused Sites imported from models (unused-import)
default.py:5:0: W0611: Unused SiteTests imported from models (unused-import)
default.py:6:0: W0611: Unused import config (unused-import)
***** Module default default.py:13:0: C0301: Line too long (814/100) (line-too-long) default.py:59:0: C0301: Line too long (169/100) (line-too-long) default.py:64:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens) default.py:84:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens) default.py:90:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens) default.py:93:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens) default.py:102:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens) default.py:105:0: C0301: Line too long (106/100) (line-too-long) default.py:141:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens) default.py:143:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens) default.py:148:0: C0325: Unnecessary parens after 'elif' keyword (superfluous-parens) default.py:150:0: C0325: Unnecessary parens after 'elif' keyword (superfluous-parens) default.py:152:0: C0325: Unnecessary parens after 'elif' keyword (superfluous-parens) default.py:182:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens) default.py:186:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens) default.py:189:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens) default.py:192:0: C0325: Unnecessary parens after 'elif' keyword (superfluous-parens) default.py:195:0: C0325: Unnecessary parens after 'elif' keyword (superfluous-parens) default.py:198:0: C0301: Line too long (106/100) (line-too-long) default.py:199:0: C0303: Trailing whitespace (trailing-whitespace) default.py:200:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens) default.py:203:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens) default.py:205:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens) default.py:207:0: C0325: Unnecessary parens after 'if' keyword (superfluous-parens) default.py:1:0: C0114: Missing module docstring (missing-module-docstring) default.py:6:0: E0401: Unable to import 'config' (import-error) default.py:12:0: C0116: Missing function or method docstring (missing-function-docstring) default.py:13:7: R0916: Too many boolean expressions in if statement (19/5) (too-many-boolean-expressions) default.py:13:4: R1705: Unnecessary "else" after "return", remove the "else" and de-indent the code inside it (no-else-return) default.py:13:7: E1101: Module 'utils' has no 'TEST_HTML' member (no-member) default.py:13:41: E1101: Module 'utils' has no 'TEST_PAGE_NOT_FOUND' member (no-member) default.py:13:85: E1101: Module 'utils' has no 'TEST_CSS' member (no-member) default.py:13:118: E1101: Module 'utils' has no 'TEST_WEBBKOLL' member (no-member) default.py:13:156: E1101: Module 'utils' has no 'TEST_GOOGLE_LIGHTHOUSE' member (no-member) default.py:13:203: E1101: Module 'utils' has no 'TEST_GOOGLE_LIGHTHOUSE_PWA' member (no-member) default.py:13:254: E1101: Module 'utils' has no 'TEST_GOOGLE_LIGHTHOUSE_A11Y' member (no-member) default.py:13:306: E1101: Module 'utils' has no 'TEST_GOOGLE_LIGHTHOUSE_SEO' member (no-member) default.py:13:357: E1101: Module 'utils' has no 'TEST_GOOGLE_LIGHTHOUSE_BEST_PRACTICE' member (no-member) default.py:13:418: E1101: Module 'utils' has no 'TEST_STANDARD_FILES' member (no-member) default.py:13:462: E1101: Module 'utils' has no 'TEST_YELLOW_LAB_TOOLS' member (no-member) default.py:13:508: E1101: Module 'utils' has no 'TEST_PA11Y' member (no-member) default.py:13:543: E1101: Module 'utils' has no 'TEST_HTTP' member (no-member) default.py:13:577: E1101: Module 'utils' has no 'TEST_ENERGY_EFFICIENCY' member (no-member) default.py:13:624: E1101: Module 'utils' has no 'TEST_TRACKING' member (no-member) default.py:13:662: E1101: Module 'utils' has no 'TEST_SITESPEED' member (no-member) default.py:13:701: E1101: Module 'utils' has no 'TEST_EMAIL' member (no-member) default.py:13:736: E1101: Module 'utils' has no 'TEST_SOFTWARE' member (no-member) default.py:13:774: E1101: Module 'utils' has no 'TEST_A11Y_STATEMENT' member (no-member) default.py:14:15: R1734: Consider using [] instead of list() (use-list-literal) default.py:19:0: R0914: Too many local variables (31/15) (too-many-locals) default.py:38:22: E1101: Module 'utils' has no 'TEST_ALL' member (no-member) default.py:39:12: R1734: Consider using [] instead of list() (use-list-literal) default.py:48:4: C0103: Variable name "langCode" doesn't conform to snake_case naming style (invalid-name) default.py:64:8: C2801: Unnecessarily calls dunder method len. Use len built-in function. (unnecessary-dunder-call) default.py:78:12: C0415: Import outside toplevel (os) (import-outside-toplevel) default.py:79:12: C0103: Variable name "availableLanguages" doesn't conform to snake_case naming style (invalid-name) default.py:79:33: R1734: Consider using [] instead of list() (use-list-literal) default.py:80:12: C0103: Variable name "localeDirs" doesn't conform to snake_case naming style (invalid-name) default.py:81:12: C0103: Variable name "foundLang" doesn't conform to snake_case naming style (invalid-name) default.py:83:16: C0103: Variable name "localeName" doesn't conform to snake_case naming style (invalid-name) default.py:87:16: C0103: Variable name "languageSubDirectory" doesn't conform to snake_case naming style (invalid-name) default.py:94:24: C0103: Variable name "langCode" doesn't conform to snake_case naming style (invalid-name) default.py:95:24: C0103: Variable name "foundLang" doesn't conform to snake_case naming style (invalid-name) default.py:111:19: W0718: Catching too general exception Exception (broad-exception-caught) default.py:112:29: R1734: Consider using [] instead of list() (use-list-literal) default.py:147:16: C0415: Import outside toplevel (engines.sqlite.read_sites, engines.sqlite.add_site, engines.sqlite.delete_site) (import-outside-toplevel) default.py:149:16: C0415: Import outside toplevel (engines.csv.read_sites, engines.csv.add_site, engines.csv.delete_site) (import-outside-toplevel) default.py:151:16: C0415: Import outside toplevel (engines.sitemap.read_sites, engines.sitemap.add_site, engines.sitemap.delete_site) (import-outside-toplevel) default.py:153:16: C0415: Import outside toplevel (engines.sitemap.read_sites, engines.sitemap.add_site, engines.sitemap.delete_site) (import-outside-toplevel) default.py:155:16: C0415: Import outside toplevel (engines.sitespeed_result.read_sites, engines.sitespeed_result.add_site, engines.sitespeed_result.delete_site) (import-outside-toplevel) default.py:157:16: C0415: Import outside toplevel (engines.webperf.read_sites, engines.webperf.add_site, engines.webperf.delete_site) (import-outside-toplevel) default.py:159:16: C0415: Import outside toplevel (engines.json.read_sites, engines.json.add_site, engines.json.delete_site) (import-outside-toplevel) default.py:160:12: W0107: Unnecessary pass statement (unnecessary-pass) default.py:164:19: W0718: Catching too general exception Exception (broad-exception-caught) default.py:167:12: W0107: Unnecessary pass statement (unnecessary-pass) default.py:171:19: W0718: Catching too general exception Exception (broad-exception-caught) default.py:174:12: W0107: Unnecessary pass statement (unnecessary-pass) default.py:177:12: W0107: Unnecessary pass statement (unnecessary-pass) default.py:180:12: W0107: Unnecessary pass statement (unnecessary-pass) default.py:195:10: C1802: Do not use
len(SEQUENCE)
without comparison to determine if a sequence is empty (use-implicit-booleaness-not-len) default.py:197:23: E1101: Module 'utils' has no 'test_sites' member (no-member) default.py:208:16: C0415: Import outside toplevel (engines.csv.write_tests) (import-outside-toplevel) default.py:210:16: C0415: Import outside toplevel (engines.gov.write_tests) (import-outside-toplevel) default.py:212:16: C0415: Import outside toplevel (engines.sql.write_tests) (import-outside-toplevel) default.py:214:16: C0415: Import outside toplevel (engines.sqlite.write_tests) (import-outside-toplevel) default.py:216:16: C0415: Import outside toplevel (engines.json.write_tests) (import-outside-toplevel) default.py:19:0: R0912: Too many branches (46/12) (too-many-branches) default.py:19:0: R0915: Too many statements (153/50) (too-many-statements) default.py:58:14: W0612: Unused variable 'args' (unused-variable) default.py:226:0: W0105: String statement has no effect (pointless-string-statement) default.py:6:0: C0411: third party import "config" should be placed before first party import "models.Sites" (wrong-import-order) default.py:7:0: C0411: standard import "gettext" should be placed before third party import "config" and first party import "models.Sites" (wrong-import-order) default.py:4:0: W0611: Unused import datetime (unused-import) default.py:5:0: W0611: Unused Sites imported from models (unused-import) default.py:5:0: W0611: Unused SiteTests imported from models (unused-import) default.py:6:0: W0611: Unused import config (unused-import)