@@ -57,22 +57,21 @@ def analyzer(system_info):
5757
5858
5959def test_only_absolute_threshold_fails (analyzer , model_obj ):
60- args = StorageAnalyzerArgs (min_required_free_space_abs = "1TB " )
60+ args = StorageAnalyzerArgs (min_required_free_space_abs = "800GB " )
6161 result = analyzer .analyze_data (model_obj , args )
62- assert result .status == ExecutionStatus .ERROR
63- assert any (event .category == EventCategory .STORAGE .value for event in result .events )
64- assert any (event .priority == EventPriority .CRITICAL for event in result .events )
62+ assert result .status == ExecutionStatus .OK
63+ assert "'/dev/nvme0n1p2' has 869.8GB available, 3.0% used" in result .message
6564
6665
6766def test_only_percentage_threshold_fails (analyzer , model_obj ):
68- args = StorageAnalyzerArgs (min_required_free_space_prct = 50 )
67+ args = StorageAnalyzerArgs (min_required_free_space_prct = 99 )
6968 result = analyzer .analyze_data (model_obj , args )
7069 assert result .status == ExecutionStatus .ERROR
7170 assert any (event .category == EventCategory .STORAGE .value for event in result .events )
7271 assert any (event .priority == EventPriority .CRITICAL for event in result .events )
7372
7473
75- def test_windows_nominal (system_info ):
74+ def test_both_abs_and_prct_fail (system_info ):
7675 system_info .os_family = OSFamily .WINDOWS
7776 analyzer = StorageAnalyzer (system_info = system_info )
7877
@@ -87,14 +86,29 @@ def test_windows_nominal(system_info):
8786 }
8887 )
8988
90- args = StorageAnalyzerArgs (min_required_free_space_abs = "10GB" , min_required_free_space_prct = 50 )
89+ args = StorageAnalyzerArgs (min_required_free_space_abs = "10GB" , min_required_free_space_prct = 96 )
9190 result = analyzer .analyze_data (model , args )
92- assert result .status == ExecutionStatus .OK
93- assert " has 466.44GB available, 53.97% used" in result .message
94- assert len (result .events ) == 0
91+ assert result .status == ExecutionStatus .ERROR
92+ assert "Not enough disk storage!" in result .message
93+ assert len (result .events ) == 1
94+ assert any (e .category == EventCategory .STORAGE .value for e in result .events )
95+ assert any (e .priority == EventPriority .CRITICAL for e in result .events )
9596
96- args2 = StorageAnalyzerArgs (min_required_free_space_prct = 40 )
97+ args2 = StorageAnalyzerArgs (min_required_free_space_prct = 40 , min_required_dree_space_abs = "1GB" )
9798 result2 = analyzer .analyze_data (model , args2 )
98- assert result2 .status == ExecutionStatus .ERROR
99- assert any (e .category == EventCategory .STORAGE .value for e in result2 .events )
100- assert any (e .priority == EventPriority .CRITICAL for e in result2 .events )
99+ assert result2 .status == ExecutionStatus .OK
100+
101+
102+ def test_device_filter (analyzer , model_obj ):
103+ model_obj .storage_data ["some_device" ] = DeviceStorageData (
104+ total = 1000 , free = 100 , used = 900 , percent = 90
105+ )
106+
107+ args = StorageAnalyzerArgs (min_required_free_space_prct = "20" )
108+ result = analyzer .analyze_data (model_obj , args )
109+ assert result .status == ExecutionStatus .ERROR
110+ assert len (result .events ) == 1
111+
112+ args2 = StorageAnalyzerArgs (min_required_free_space_prct = "20" , ignore_devices = ["some_device" ])
113+ result2 = analyzer .analyze_data (model_obj , args2 )
114+ assert result2 .status == ExecutionStatus .OK
0 commit comments