@@ -46,7 +46,6 @@ def ws_description(**kwargs):
4646 "username" : "test-user" ,
4747 "computer_name" : "test-computer" ,
4848 "initial_mode" : "test-mode" ,
49- "tags" : ["tag1" , "tag2" ],
5049 }
5150 filtered_args = {
5251 key : value for key , value in kwargs .items () if key in default_args .keys ()
@@ -91,6 +90,7 @@ def ws_record(ws_billing_data, ws_metrics):
9190 report_date = "test-report-date" ,
9291 last_reported_metric_period = "test-last-period" ,
9392 last_known_user_connection = "test-last-connection" ,
93+ tags = "[{'key1': 'tag1'}, {'key2': 'tag2'}]" ,
9494 )
9595
9696
@@ -180,13 +180,18 @@ def performance_metric_factory(length, start):
180180
181181def metric_data_factory (indices , length , start ):
182182 metrics = {}
183+ user_connected_timestamps = user_session_timestamps_factory (length )
183184 timestamps = user_session_timestamps_factory (length )
184185 for metric in METRIC_LIST :
185186 if metric == "UserConnected" :
186187 data = user_connected_data_factory (indices , length )
188+ metrics [metric .lower ()] = {
189+ "timestamps" : user_connected_timestamps ,
190+ "values" : data ,
191+ }
187192 else :
188193 data = performance_metric_factory (length , start )
189- metrics [metric .lower ()] = {"timestamps" : timestamps , "values" : data }
194+ metrics [metric .lower ()] = {"timestamps" : timestamps , "values" : data }
190195 return metrics
191196
192197
@@ -241,9 +246,14 @@ def expected_sessions_factory(user_session_data, active_indices, zero_limit):
241246 session .setdefault ("active_sessions" , []).append (
242247 user_session_data ["cpuusage" ]["timestamps" ][active_index ]
243248 )
244- expected_avg = WeightedAverage (
249+ current_avg = WeightedAverage (
245250 user_session_data ["cpuusage" ]["values" ][active_index ], 1
246- ).merge (expected_avg )
251+ )
252+ expected_avg = (
253+ current_avg .merge (expected_avg )
254+ if expected_avg is not None
255+ else current_avg
256+ )
247257 if session :
248258 duration_hours = math .ceil (
249259 (session ["active_sessions" ][- 1 ] - session ["active_sessions" ][0 ]).seconds
@@ -691,7 +701,7 @@ def test_get_billable_hours_and_performance(mocker, session, ws_record, metric_d
691701 metrics_helper , "get_list_data_points" , return_value = metric_data
692702 )
693703 mocker .patch .object (metrics_helper , "get_user_connected_hours" )
694- mocker .patch .object (metrics_helper , "get_user_sessions" )
704+ mock_user_session = mocker .patch .object (metrics_helper , "get_user_sessions" )
695705 mocker .patch .object (metrics_helper .session_table , "update_ddb_items" ),
696706 spy_get_time_range = mocker .spy (metrics_helper , "get_time_range" )
697707 spy_get_cloudwatch_metric_data_points = mocker .spy (
@@ -712,7 +722,13 @@ def test_get_billable_hours_and_performance(mocker, session, ws_record, metric_d
712722 )
713723 spy_get_cloudwatch_metric_data_points .assert_called_once ()
714724 spy_get_list_data_points .assert_called_once ()
715- spy_get_user_connected_hours .assert_called_once ()
725+ spy_get_user_connected_hours .assert_called_once_with (
726+ mock_user_session (),
727+ ws_record .description .workspace_id ,
728+ ws_record .description .initial_mode ,
729+ 60 ,
730+ ws_record .billing_data .billable_hours ,
731+ )
716732 spy_get_user_sessions .assert_called_once ()
717733
718734
@@ -807,6 +823,9 @@ def test_get_user_sessions(session, ws_record):
807823 total_values = 26
808824 start_value = 1
809825 user_session_data = metric_data_factory (active_indices , total_values , start_value )
826+ user_session_data ["userconnected" ]["timestamps" ][- 1 ] += datetime .timedelta (
827+ minutes = 5
828+ )
810829 result = metrics_helper .get_user_sessions (
811830 user_session_data ,
812831 ws_description (),
@@ -1436,7 +1455,7 @@ def test_get_user_sessions_32(session, ws_record):
14361455def test_process_performance_metrics (session , ws_record , metric_data ):
14371456 metrics_helper = MetricsHelper (session , "us-east-1" , "test-table" )
14381457 current_weighted_avg = mean (metric_data ["cpuusage" ]["values" ]) * 3
1439- previous_weighted_avg = ws_record .performance_metrics .cpu_usage .weighted_avg
1458+ previous_weighted_avg = ws_record .performance_metrics .cpu_usage .weighted_avg ()
14401459 expected_avg = Decimal (
14411460 (current_weighted_avg + previous_weighted_avg )
14421461 / (ws_record .performance_metrics .cpu_usage .count + 3 ),
@@ -1462,9 +1481,8 @@ def test_process_performance_metrics_with_no_available_data_in_last_report(
14621481 assert result .memory_usage .avg == Decimal ("5" )
14631482 assert result .memory_usage .count == 3
14641483
1465- # test when current dat doesn't exist
1466- assert result .udp_packet_loss_rate .avg == None
1467- assert result .udp_packet_loss_rate .count == 0
1484+ # test when current data doesn't exist
1485+ assert result .udp_packet_loss_rate == None
14681486
14691487
14701488def test_process_performance_metrics_with_zero_avg (session , ws_record , metric_data ):
0 commit comments