@@ -274,3 +274,58 @@ def test_get_glob_files(glob_pattern: str, file_list: set, fixtures_path: Path):
274
274
assert len (result ) == len (file_list )
275
275
for f in result :
276
276
assert Path (f .filename ) in file_list
277
+
278
+
279
+ def test_file_overrides_config (fixtures_path : Path ):
280
+ """If a file has a different config, it should override the main config."""
281
+ cfg_file = fixtures_path / "file_config_overrides.toml"
282
+ conf = config .get_configuration (cfg_file )
283
+ file_map = {f .filename : f for f in conf .files }
284
+ assert file_map ["should_contain_defaults.txt" ].parse == conf .parse
285
+ assert file_map ["should_contain_defaults.txt" ].serialize == conf .serialize
286
+ assert file_map ["should_contain_defaults.txt" ].search == conf .search
287
+ assert file_map ["should_contain_defaults.txt" ].replace == conf .replace
288
+ assert file_map ["should_contain_defaults.txt" ].regex == conf .regex
289
+ assert file_map ["should_contain_defaults.txt" ].ignore_missing_version == conf .ignore_missing_version
290
+
291
+ assert file_map ["should_override_search.txt" ].parse == conf .parse
292
+ assert file_map ["should_override_search.txt" ].serialize == conf .serialize
293
+ assert file_map ["should_override_search.txt" ].search == "**unreleased**"
294
+ assert file_map ["should_override_search.txt" ].replace == conf .replace
295
+ assert file_map ["should_override_search.txt" ].regex == conf .regex
296
+ assert file_map ["should_override_search.txt" ].ignore_missing_version == conf .ignore_missing_version
297
+
298
+ assert file_map ["should_override_replace.txt" ].parse == conf .parse
299
+ assert file_map ["should_override_replace.txt" ].serialize == conf .serialize
300
+ assert file_map ["should_override_replace.txt" ].search == conf .search
301
+ assert file_map ["should_override_replace.txt" ].replace == "**unreleased**"
302
+ assert file_map ["should_override_replace.txt" ].regex == conf .regex
303
+ assert file_map ["should_override_replace.txt" ].ignore_missing_version == conf .ignore_missing_version
304
+
305
+ assert file_map ["should_override_parse.txt" ].parse == "version(?P<major>\d+)"
306
+ assert file_map ["should_override_parse.txt" ].serialize == conf .serialize
307
+ assert file_map ["should_override_parse.txt" ].search == conf .search
308
+ assert file_map ["should_override_parse.txt" ].replace == conf .replace
309
+ assert file_map ["should_override_parse.txt" ].regex == conf .regex
310
+ assert file_map ["should_override_parse.txt" ].ignore_missing_version == conf .ignore_missing_version
311
+
312
+ assert file_map ["should_override_serialize.txt" ].parse == conf .parse
313
+ assert file_map ["should_override_serialize.txt" ].serialize == ["{major}" ]
314
+ assert file_map ["should_override_serialize.txt" ].search == conf .search
315
+ assert file_map ["should_override_serialize.txt" ].replace == conf .replace
316
+ assert file_map ["should_override_serialize.txt" ].regex == conf .regex
317
+ assert file_map ["should_override_serialize.txt" ].ignore_missing_version == conf .ignore_missing_version
318
+
319
+ assert file_map ["should_override_ignore_missing.txt" ].parse == conf .parse
320
+ assert file_map ["should_override_ignore_missing.txt" ].serialize == conf .serialize
321
+ assert file_map ["should_override_ignore_missing.txt" ].search == conf .search
322
+ assert file_map ["should_override_ignore_missing.txt" ].replace == conf .replace
323
+ assert file_map ["should_override_ignore_missing.txt" ].regex == conf .regex
324
+ assert file_map ["should_override_ignore_missing.txt" ].ignore_missing_version is False
325
+
326
+ assert file_map ["should_override_regex.txt" ].parse == conf .parse
327
+ assert file_map ["should_override_regex.txt" ].serialize == conf .serialize
328
+ assert file_map ["should_override_regex.txt" ].search == conf .search
329
+ assert file_map ["should_override_regex.txt" ].replace == conf .replace
330
+ assert file_map ["should_override_regex.txt" ].regex is False
331
+ assert file_map ["should_override_regex.txt" ].ignore_missing_version == conf .ignore_missing_version
0 commit comments