@@ -54,8 +54,10 @@ def _generate_large_ios_config(num_interfaces: int = 1000) -> str:
5454 " auto-cost reference-bandwidth 100000" ,
5555 ]
5656 )
57- for i in range (num_interfaces ):
58- lines .append (f" network 10.{ i // 256 } .{ i % 256 } .0 0.0.0.3 area 0" )
57+ lines .extend (
58+ f" network 10.{ i // 256 } .{ i % 256 } .0 0.0.0.3 area 0"
59+ for i in range (num_interfaces )
60+ )
5961 lines .extend (
6062 [
6163 "!" ,
@@ -125,8 +127,10 @@ def _generate_large_xr_config(num_interfaces: int = 1000) -> str:
125127 " router-id 10.0.0.1" ,
126128 ]
127129 )
128- for i in range (num_interfaces ):
129- lines .append (f" area 0 interface GigabitEthernet0/0/0/{ i } cost 100" )
130+ lines .extend (
131+ f" area 0 interface GigabitEthernet0/0/0/{ i } cost 100"
132+ for i in range (num_interfaces )
133+ )
130134 lines .append ("!" )
131135 return "\n " .join (lines )
132136
@@ -145,33 +149,37 @@ def _time_fn(fn: Callable[[], object], iterations: int = 3) -> float:
145149class TestParsingBenchmarks :
146150 """Benchmarks for config parsing."""
147151
148- def test_parse_large_ios_config (self ) -> None :
152+ @staticmethod
153+ def test_parse_large_ios_config () -> None :
149154 """Parse a ~10k line IOS config via get_hconfig."""
150155 config_text = _generate_large_ios_config ()
151156 elapsed = _time_fn (lambda : get_hconfig (Platform .CISCO_IOS , config_text ))
152157 line_count = config_text .count ("\n " )
153- print (f"\n get_hconfig: { line_count } lines in { elapsed :.4f} s" )
158+ print (f"\n get_hconfig: { line_count } lines in { elapsed :.4f} s" ) # noqa: T201
154159 assert elapsed < 5.0 , f"Parsing took { elapsed :.2f} s, expected < 5s"
155160
156- def test_parse_large_xr_config (self ) -> None :
161+ @staticmethod
162+ def test_parse_large_xr_config () -> None :
157163 """Parse a ~10k line XR config via get_hconfig."""
158164 config_text = _generate_large_xr_config ()
159165 elapsed = _time_fn (lambda : get_hconfig (Platform .CISCO_XR , config_text ))
160166 line_count = config_text .count ("\n " )
161- print (f"\n get_hconfig (XR): { line_count } lines in { elapsed :.4f} s" )
167+ print (f"\n get_hconfig (XR): { line_count } lines in { elapsed :.4f} s" ) # noqa: T201
162168 assert elapsed < 5.0 , f"Parsing took { elapsed :.2f} s, expected < 5s"
163169
164- def test_fast_load_large_ios_config (self ) -> None :
170+ @staticmethod
171+ def test_fast_load_large_ios_config () -> None :
165172 """Parse a ~10k line IOS config via get_hconfig_fast_load."""
166173 config_text = _generate_large_ios_config ()
167174 config_lines = tuple (config_text .splitlines ())
168175 elapsed = _time_fn (
169176 lambda : get_hconfig_fast_load (Platform .CISCO_IOS , config_lines ),
170177 )
171- print (f"\n get_hconfig_fast_load: { len (config_lines )} lines in { elapsed :.4f} s" )
178+ print (f"\n get_hconfig_fast_load: { len (config_lines )} lines in { elapsed :.4f} s" ) # noqa: T201
172179 assert elapsed < 5.0 , f"Fast load took { elapsed :.2f} s, expected < 5s"
173180
174- def test_fast_load_vs_get_hconfig (self ) -> None :
181+ @staticmethod
182+ def test_fast_load_vs_get_hconfig () -> None :
175183 """get_hconfig_fast_load should be faster than get_hconfig."""
176184 config_text = _generate_large_ios_config ()
177185 config_lines = tuple (config_text .splitlines ())
@@ -181,7 +189,7 @@ def test_fast_load_vs_get_hconfig(self) -> None:
181189 lambda : get_hconfig_fast_load (Platform .CISCO_IOS , config_lines ),
182190 )
183191 ratio = time_full / time_fast if time_fast > 0 else float ("inf" )
184- print (
192+ print ( # noqa: T201
185193 f"\n get_hconfig: { time_full :.4f} s, "
186194 f"fast_load: { time_fast :.4f} s, "
187195 f"ratio: { ratio :.1f} x"
@@ -195,7 +203,8 @@ def test_fast_load_vs_get_hconfig(self) -> None:
195203class TestRemediationBenchmarks :
196204 """Benchmarks for config_to_get_to remediation."""
197205
198- def test_remediation_small_diff (self ) -> None :
206+ @staticmethod
207+ def test_remediation_small_diff () -> None :
199208 """Remediation with ~5% of interfaces changed."""
200209 running_text = _generate_large_ios_config ()
201210 running = get_hconfig (Platform .CISCO_IOS , running_text )
@@ -207,10 +216,11 @@ def test_remediation_small_diff(self) -> None:
207216 generated = get_hconfig (Platform .CISCO_IOS , generated_text )
208217
209218 elapsed = _time_fn (lambda : running .config_to_get_to (generated ))
210- print (f"\n Remediation (10% diff): { elapsed :.4f} s" )
219+ print (f"\n Remediation (10% diff): { elapsed :.4f} s" ) # noqa: T201
211220 assert elapsed < 5.0 , f"Remediation took { elapsed :.2f} s, expected < 5s"
212221
213- def test_remediation_large_diff (self ) -> None :
222+ @staticmethod
223+ def test_remediation_large_diff () -> None :
214224 """Remediation with ~100% of interfaces changed."""
215225 running = get_hconfig (Platform .CISCO_IOS , _generate_large_ios_config ())
216226 generated_text = _generate_large_ios_config ().replace (
@@ -219,10 +229,11 @@ def test_remediation_large_diff(self) -> None:
219229 generated = get_hconfig (Platform .CISCO_IOS , generated_text )
220230
221231 elapsed = _time_fn (lambda : running .config_to_get_to (generated ))
222- print (f"\n Remediation (100% diff): { elapsed :.4f} s" )
232+ print (f"\n Remediation (100% diff): { elapsed :.4f} s" ) # noqa: T201
223233 assert elapsed < 10.0 , f"Remediation took { elapsed :.2f} s, expected < 10s"
224234
225- def test_remediation_completely_different (self ) -> None :
235+ @staticmethod
236+ def test_remediation_completely_different () -> None :
226237 """Remediation between two entirely different configs."""
227238 running = get_hconfig (Platform .CISCO_IOS , _generate_large_ios_config (500 ))
228239 # Generate a completely different config
@@ -238,35 +249,38 @@ def test_remediation_completely_different(self) -> None:
238249 generated = get_hconfig (Platform .CISCO_IOS , "\n " .join (lines ))
239250
240251 elapsed = _time_fn (lambda : running .config_to_get_to (generated ))
241- print (f"\n Remediation (completely different): { elapsed :.4f} s" )
252+ print (f"\n Remediation (completely different): { elapsed :.4f} s" ) # noqa: T201
242253 assert elapsed < 10.0 , f"Remediation took { elapsed :.2f} s, expected < 10s"
243254
244255
245256class TestIterationBenchmarks :
246257 """Benchmarks for tree traversal and iteration."""
247258
248- def test_all_children_sorted (self ) -> None :
259+ @staticmethod
260+ def test_all_children_sorted () -> None :
249261 """Iterate all_children_sorted on a large config."""
250262 config = get_hconfig (Platform .CISCO_IOS , _generate_large_ios_config ())
251263
252264 elapsed = _time_fn (lambda : list (config .all_children_sorted ()))
253265 child_count = len (list (config .all_children ()))
254- print (f"\n all_children_sorted: { child_count } nodes in { elapsed :.4f} s" )
266+ print (f"\n all_children_sorted: { child_count } nodes in { elapsed :.4f} s" ) # noqa: T201
255267 assert elapsed < 2.0 , f"Iteration took { elapsed :.2f} s, expected < 2s"
256268
257- def test_dump_simple (self ) -> None :
269+ @staticmethod
270+ def test_dump_simple () -> None :
258271 """Dump a large config to simple text."""
259272 config = get_hconfig (Platform .CISCO_IOS , _generate_large_ios_config ())
260273
261274 elapsed = _time_fn (config .dump_simple )
262275 line_count = len (config .dump_simple ())
263- print (f"\n dump_simple: { line_count } lines in { elapsed :.4f} s" )
276+ print (f"\n dump_simple: { line_count } lines in { elapsed :.4f} s" ) # noqa: T201
264277 assert elapsed < 2.0 , f"dump_simple took { elapsed :.2f} s, expected < 2s"
265278
266- def test_deep_copy (self ) -> None :
279+ @staticmethod
280+ def test_deep_copy () -> None :
267281 """Deep copy a large config tree."""
268282 config = get_hconfig (Platform .CISCO_IOS , _generate_large_ios_config ())
269283
270284 elapsed = _time_fn (config .deep_copy )
271- print (f"\n deep_copy: { elapsed :.4f} s" )
285+ print (f"\n deep_copy: { elapsed :.4f} s" ) # noqa: T201
272286 assert elapsed < 5.0 , f"deep_copy took { elapsed :.2f} s, expected < 5s"
0 commit comments