39
39
TEST_WEBBKOLL , TEST_HTTP , TEST_ENERGY_EFFICIENCY , TEST_TRACKING ,
40
40
TEST_EMAIL , TEST_SOFTWARE , TEST_A11Y_STATEMENT ) = range (27 )
41
41
42
+ TEST_FUNCS = {
43
+ TEST_PAGE_NOT_FOUND : run_test_page_not_found ,
44
+ TEST_HTML : run_test_html_validator_w3c ,
45
+ TEST_CSS : run_test_css_validator_w3c ,
46
+ TEST_WEBBKOLL : run_test_privacy_webbkollen ,
47
+ TEST_GOOGLE_LIGHTHOUSE : run_test_performance_lighthouse ,
48
+ TEST_GOOGLE_LIGHTHOUSE_SEO : run_test_seo_lighthouse ,
49
+ TEST_GOOGLE_LIGHTHOUSE_BEST_PRACTICE : run_test_best_practice_lighthouse ,
50
+ TEST_GOOGLE_LIGHTHOUSE_PWA : run_test_pwa_lighthouse ,
51
+ TEST_STANDARD_FILES :run_test_standard_files ,
52
+ TEST_GOOGLE_LIGHTHOUSE_A11Y : run_test_a11y_lighthouse ,
53
+ TEST_SITESPEED : run_test_performance_sitespeed_io ,
54
+ TEST_YELLOW_LAB_TOOLS : run_test_frontend_quality_yellow_lab_tools ,
55
+ TEST_PA11Y : run_test_a11y_pa11y ,
56
+ TEST_HTTP : run_test_http_validator ,
57
+ TEST_ENERGY_EFFICIENCY : run_test_energy_efficiency ,
58
+ TEST_TRACKING : run_test_tracking_validator ,
59
+ TEST_EMAIL : run_test_email_validator ,
60
+ TEST_SOFTWARE : run_test_software ,
61
+ TEST_A11Y_STATEMENT : run_test_a11y_statement
62
+ }
63
+
42
64
43
65
def test (_ , lang_code , site , test_type = None , show_reviews = False ):
44
66
"""
@@ -51,45 +73,11 @@ def test(_, lang_code, site, test_type=None, show_reviews=False):
51
73
website = site [1 ]
52
74
53
75
try :
54
- the_test_result = None
55
- if test_type == TEST_PAGE_NOT_FOUND :
56
- the_test_result = run_test_page_not_found (_ , lang_code , website )
57
- elif test_type == TEST_HTML :
58
- the_test_result = run_test_html_validator_w3c (_ , lang_code , website )
59
- elif test_type == TEST_CSS :
60
- the_test_result = run_test_css_validator_w3c (_ , lang_code , website )
61
- elif test_type == TEST_WEBBKOLL :
62
- the_test_result = run_test_privacy_webbkollen (_ , lang_code , website )
63
- elif test_type == TEST_GOOGLE_LIGHTHOUSE :
64
- the_test_result = run_test_performance_lighthouse (_ , lang_code , website )
65
- elif test_type == TEST_GOOGLE_LIGHTHOUSE_SEO :
66
- the_test_result = run_test_seo_lighthouse (_ , lang_code , website )
67
- elif test_type == TEST_GOOGLE_LIGHTHOUSE_BEST_PRACTICE :
68
- the_test_result = run_test_best_practice_lighthouse (_ , lang_code , website )
69
- elif test_type == TEST_GOOGLE_LIGHTHOUSE_PWA :
70
- the_test_result = run_test_pwa_lighthouse (_ , lang_code , website )
71
- elif test_type == TEST_STANDARD_FILES :
72
- the_test_result = run_test_standard_files (_ , lang_code , website )
73
- elif test_type == TEST_GOOGLE_LIGHTHOUSE_A11Y :
74
- the_test_result = run_test_a11y_lighthouse (_ , lang_code , website )
75
- elif test_type == TEST_SITESPEED :
76
- the_test_result = run_test_performance_sitespeed_io (_ , lang_code , website )
77
- elif test_type == TEST_YELLOW_LAB_TOOLS :
78
- the_test_result = run_test_frontend_quality_yellow_lab_tools (_ , lang_code , website )
79
- elif test_type == TEST_PA11Y :
80
- the_test_result = run_test_a11y_pa11y (_ , lang_code , website )
81
- elif test_type == TEST_HTTP :
82
- the_test_result = run_test_http_validator (_ , lang_code , website )
83
- elif test_type == TEST_ENERGY_EFFICIENCY :
84
- the_test_result = run_test_energy_efficiency (_ , lang_code , website )
85
- elif test_type == TEST_TRACKING :
86
- the_test_result = run_test_tracking_validator (_ , lang_code , website )
87
- elif test_type == TEST_EMAIL :
88
- the_test_result = run_test_email_validator (_ , lang_code , website )
89
- elif test_type == TEST_SOFTWARE :
90
- the_test_result = run_test_software (_ , lang_code , website )
91
- elif test_type == TEST_A11Y_STATEMENT :
92
- the_test_result = run_test_a11y_statement (_ , lang_code , website )
76
+ if test_type not in TEST_FUNCS :
77
+ return []
78
+
79
+ run_test = TEST_FUNCS [test_type ]
80
+ the_test_result = run_test (_ , lang_code , website )
93
81
94
82
if the_test_result is not None :
95
83
rating = the_test_result [0 ]
@@ -103,7 +91,11 @@ def test(_, lang_code, site, test_type=None, show_reviews=False):
103
91
try :
104
92
json_data = the_test_result [1 ]
105
93
json_data = json .dumps (json_data )
106
- except :
94
+ except json .decoder .JSONDecodeError :
95
+ json_data = ''
96
+ except TypeError :
97
+ json_data = ''
98
+ except RecursionError :
107
99
json_data = ''
108
100
109
101
jsondata = str (json_data ).encode ('utf-8' ) # --//--
@@ -114,7 +106,7 @@ def test(_, lang_code, site, test_type=None, show_reviews=False):
114
106
json_check_data = jsondata ).todata ()
115
107
116
108
return site_test
117
- except Exception as e :
109
+ except Exception as e : # pylint: disable=broad-exception-caught
118
110
print (_ ('TEXT_TEST_END' ).format (
119
111
datetime .datetime .now ().strftime ('%Y-%m-%d %H:%M:%S' )))
120
112
print (_ ('TEXT_EXCEPTION' ), website , '\n ' , e )
@@ -147,6 +139,8 @@ def test(_, lang_code, site, test_type=None, show_reviews=False):
147
139
f'\n cache_time_delta: { config .cache_time_delta } ' ,
148
140
f'\n software_use_stealth: { config .software_use_stealth } ' ,
149
141
f'\n use_detailed_report: { config .use_detailed_report } ' ,
142
+ f'\n csp_only: { config .csp_only } ' ,
143
+ f'\n dns_server: { config .dns_server } ' ,
150
144
f'\n software_browser: { config .software_browser } ' ,
151
145
'\n ###############################################\n '
152
146
])
@@ -161,96 +155,14 @@ def test(_, lang_code, site, test_type=None, show_reviews=False):
161
155
162
156
def test_site (_ , lang_code , site , test_types = TEST_ALL , show_reviews = False ):
163
157
tests = []
164
- ##############
165
- if TEST_GOOGLE_LIGHTHOUSE in test_types :
166
- tests .extend (test (_ ,
167
- lang_code ,
168
- site ,
169
- test_type = TEST_GOOGLE_LIGHTHOUSE ,
170
- show_reviews = show_reviews ))
171
- if TEST_PAGE_NOT_FOUND in test_types :
172
- tests .extend (test (_ , lang_code , site ,
173
- test_type = TEST_PAGE_NOT_FOUND ,
174
- show_reviews = show_reviews ))
175
- if TEST_GOOGLE_LIGHTHOUSE_SEO in test_types :
176
- tests .extend (test (_ ,
177
- lang_code ,
178
- site ,
179
- test_type = TEST_GOOGLE_LIGHTHOUSE_SEO ,
180
- show_reviews = show_reviews ))
181
- if TEST_GOOGLE_LIGHTHOUSE_BEST_PRACTICE in test_types :
182
- tests .extend (test (_ ,
183
- lang_code ,
184
- site ,
185
- test_type = TEST_GOOGLE_LIGHTHOUSE_BEST_PRACTICE ,
186
- show_reviews = show_reviews ))
187
- if TEST_HTML in test_types :
188
- tests .extend (test (_ , lang_code , site ,
189
- test_type = TEST_HTML ,
190
- show_reviews = show_reviews ))
191
- if TEST_CSS in test_types :
192
- tests .extend (test (_ , lang_code , site ,
193
- test_type = TEST_CSS ,
194
- show_reviews = show_reviews ))
195
- if TEST_GOOGLE_LIGHTHOUSE_PWA in test_types :
196
- tests .extend (test (_ ,
197
- lang_code ,
198
- site ,
199
- test_type = TEST_GOOGLE_LIGHTHOUSE_PWA ,
200
- show_reviews = show_reviews ))
201
- if TEST_STANDARD_FILES in test_types :
202
- tests .extend (test (_ , lang_code , site ,
203
- test_type = TEST_STANDARD_FILES ,
204
- show_reviews = show_reviews ))
205
- if TEST_GOOGLE_LIGHTHOUSE_A11Y in test_types :
206
- tests .extend (test (_ ,
207
- lang_code ,
208
- site ,
209
- test_type = TEST_GOOGLE_LIGHTHOUSE_A11Y ,
210
- show_reviews = show_reviews ))
211
- if TEST_SITESPEED in test_types :
212
- tests .extend (test (_ , lang_code , site ,
213
- test_type = TEST_SITESPEED ,
214
- show_reviews = show_reviews ))
215
- if TEST_YELLOW_LAB_TOOLS in test_types :
216
- tests .extend (test (_ ,
217
- lang_code ,
218
- site ,
219
- test_type = TEST_YELLOW_LAB_TOOLS ,
220
- show_reviews = show_reviews ))
221
- if TEST_PA11Y in test_types :
222
- tests .extend (test (_ ,
223
- lang_code ,
224
- site ,
225
- test_type = TEST_PA11Y ,
226
- show_reviews = show_reviews ))
227
- if TEST_WEBBKOLL in test_types :
228
- tests .extend (test (_ , lang_code , site ,
229
- test_type = TEST_WEBBKOLL ,
230
- show_reviews = show_reviews ))
231
- if TEST_HTTP in test_types :
232
- tests .extend (test (_ , lang_code , site ,
233
- test_type = TEST_HTTP ,
234
- show_reviews = show_reviews ))
235
- if TEST_ENERGY_EFFICIENCY in test_types :
236
- tests .extend (test (_ , lang_code , site ,
237
- test_type = TEST_ENERGY_EFFICIENCY ,
238
- show_reviews = show_reviews ))
239
- if TEST_TRACKING in test_types :
240
- tests .extend (test (_ , lang_code , site ,
241
- test_type = TEST_TRACKING ,
242
- show_reviews = show_reviews ))
243
- if TEST_EMAIL in test_types :
244
- tests .extend (test (_ , lang_code , site ,
245
- test_type = TEST_EMAIL , show_reviews = show_reviews ))
246
- if TEST_SOFTWARE in test_types :
247
- tests .extend (test (_ , lang_code , site ,
248
- test_type = TEST_SOFTWARE ,
249
- show_reviews = show_reviews ))
250
- if TEST_A11Y_STATEMENT in test_types :
251
- tests .extend (test (_ , lang_code , site ,
252
- test_type = TEST_A11Y_STATEMENT ,
253
- show_reviews = show_reviews ))
158
+
159
+ for test_id in TEST_ALL :
160
+ if test_id in test_types :
161
+ tests .extend (test (_ ,
162
+ lang_code ,
163
+ site ,
164
+ test_type = test_id ,
165
+ show_reviews = show_reviews ))
254
166
255
167
return tests
256
168
@@ -280,41 +192,3 @@ def test_sites(_, lang_code, sites, test_types=TEST_ALL, show_reviews=False):
280
192
site_index += 1
281
193
282
194
return results
283
-
284
- def merge_dicts (dict1 , dict2 , sort , make_distinct ):
285
- if dict1 is None :
286
- return dict2
287
- if dict2 is None :
288
- return dict1
289
-
290
- for domain , value in dict2 .items ():
291
- if domain in dict1 :
292
- type_of_value = type (value )
293
- if type_of_value is dict :
294
- for subkey , subvalue in value .items ():
295
- if subkey in dict1 [domain ]:
296
- if isinstance (subvalue , dict ):
297
- merge_dicts (
298
- dict1 [domain ][subkey ],
299
- dict2 [domain ][subkey ],
300
- sort ,
301
- make_distinct )
302
- elif isinstance (subvalue , list ):
303
- dict1 [domain ][subkey ].extend (subvalue )
304
- if make_distinct :
305
- dict1 [domain ][subkey ] = list (set (dict1 [domain ][subkey ]))
306
- if sort :
307
- dict1 [domain ][subkey ] = sorted (dict1 [domain ][subkey ])
308
- else :
309
- dict1 [domain ][subkey ] = dict2 [domain ][subkey ]
310
- elif type_of_value == list :
311
- dict1 [domain ].extend (value )
312
- if make_distinct :
313
- dict1 [domain ] = list (set (dict1 [domain ]))
314
- if sort :
315
- dict1 [domain ] = sorted (dict1 [domain ])
316
- elif type_of_value == int :
317
- dict1 [domain ] = dict1 [domain ] + value
318
- else :
319
- dict1 [domain ] = value
320
- return dict1
0 commit comments