@@ -43,19 +43,19 @@ def __init__(self, ts, year, month, day, num_prior_days_to_include=3,
43
43
self .result_table = None
44
44
self .nr_tests_table = None
45
45
46
- def get_query_parameters_string (self ):
46
+ def get_query_parameters_string (self , sep = '&' , filter_machine_regex_str = None ):
47
47
query_params = [
48
48
"{}={}" .format (
49
49
urllib .parse .quote_plus (query_param ), urllib .parse .quote_plus (str (value )))
50
50
for query_param , value in (
51
51
("day_start" , self .day_start_offset .seconds // 3600 ),
52
52
("num_days" , self .num_prior_days_to_include ),
53
- ("filter-machine-regex" , self .filter_machine_regex_str ),)
53
+ ("filter-machine-regex" , filter_machine_regex_str or self .filter_machine_regex_str ),)
54
54
if value is not None ]
55
55
# Use & instead of plain & to make sure legal XML is
56
56
# produced, so that the unit tests can parse the output using
57
57
# python's built-in XML parser.
58
- return "&" .join (query_params )
58
+ return sep .join (query_params )
59
59
60
60
def get_key_run (self , machine , day_index ):
61
61
"""
@@ -80,7 +80,7 @@ def get_key_run(self, machine, day_index):
80
80
# Select a key run arbitrarily.
81
81
return runs [0 ]
82
82
83
- def build (self , session ):
83
+ def build (self , session , partial_report = False ):
84
84
ts = self .ts
85
85
86
86
# Construct datetime instances for the report range.
@@ -151,6 +151,9 @@ def is_recent_order(r):
151
151
self .reporting_machines = list (set (r .machine for r in relevant_runs ))
152
152
self .reporting_machines .sort (key = lambda m : m .name )
153
153
154
+ if partial_report :
155
+ return
156
+
154
157
# We aspire to present a "lossless" report, in that we don't ever hide
155
158
# any possible change due to aggregation. In addition, we want to make
156
159
# it easy to see the relation of results across all the reporting
@@ -313,13 +316,17 @@ def find_most_recent_run_with_samples(day_nr):
313
316
nr_tests_for_machine .append (nr_tests_seen )
314
317
self .nr_tests_table .append ((machine , nr_tests_for_machine ))
315
318
316
- def render (self , ts_url , only_html_body = True ):
319
+ def render (self , ts_url , only_html_body = True , async_report = False ):
317
320
# Strip any trailing slash on the testsuite URL.
318
321
if ts_url .endswith ('/' ):
319
322
ts_url = ts_url [:- 1 ]
320
323
324
+ source = 'reporting/daily_report.html'
325
+ if async_report :
326
+ source = 'reporting/daily_report_async.html'
327
+
321
328
env = lnt .server .ui .app .create_jinja_environment ()
322
- template = env .get_template ('reporting/daily_report.html' )
329
+ template = env .get_template (source )
323
330
324
331
return template .render (
325
332
report = self , styles = report_css_styles , analysis = lnt .server .reporting .analysis ,
0 commit comments