|
10 | 10 |
|
11 | 11 | import pytest |
12 | 12 |
|
| 13 | +from ansible_creator.arg_parser import Parser |
13 | 14 | from ansible_creator.cli import Cli |
14 | 15 | from ansible_creator.config import Config |
15 | 16 | from ansible_creator.output import Output |
@@ -486,3 +487,40 @@ def test_config_post_init( |
486 | 487 | ) |
487 | 488 | config.__post_init__() |
488 | 489 | assert config.project == "playbook" |
| 490 | + |
| 491 | + |
| 492 | +def test_valid_pattern_name() -> None: |
| 493 | + """Test the _valid_pattern_name function. |
| 494 | +
|
| 495 | + Raises: |
| 496 | + AssertionError: If the assertion fails. |
| 497 | + """ |
| 498 | + parser = Parser() |
| 499 | + |
| 500 | + # Test valid pattern names |
| 501 | + valid_names = [ |
| 502 | + "my_pattern", |
| 503 | + "weather_forecast", |
| 504 | + "test123", |
| 505 | + "pattern_name_123", |
| 506 | + "a" * 63, # Maximum length |
| 507 | + "abc", # Minimum length |
| 508 | + ] |
| 509 | + for name in valid_names: |
| 510 | + result = parser._valid_pattern_name(name) |
| 511 | + assert result == name |
| 512 | + assert len(parser.pending_logs) == 0 |
| 513 | + |
| 514 | + # Test invalid pattern names - starts with underscore |
| 515 | + parser.pending_logs.clear() |
| 516 | + result = parser._valid_pattern_name("_invalid") |
| 517 | + assert result == "_invalid" |
| 518 | + assert len(parser.pending_logs) == 1 |
| 519 | + assert "cannot begin with an underscore" in parser.pending_logs[0].message |
| 520 | + |
| 521 | + # Test invalid pattern names - too short |
| 522 | + parser.pending_logs.clear() |
| 523 | + result = parser._valid_pattern_name("ab") |
| 524 | + assert result == "ab" |
| 525 | + assert len(parser.pending_logs) == 1 |
| 526 | + assert "longer than 2 characters" in parser.pending_logs[0].message |
0 commit comments