|
| 1 | +from __future__ import annotations |
| 2 | + |
| 3 | +import pytest |
| 4 | + |
| 5 | +from poetry.core.masonry.utils.helpers import escape_name |
| 6 | +from poetry.core.masonry.utils.helpers import escape_version |
| 7 | + |
| 8 | + |
| 9 | +@pytest.mark.parametrize( |
| 10 | + "version,expected", |
| 11 | + [ |
| 12 | + ("1.2.3", "1.2.3"), |
| 13 | + ("1.2.3_1", "1.2.3_1"), |
| 14 | + ("1.2.3-1", "1.2.3_1"), |
| 15 | + ("1.2.3-1", "1.2.3_1"), |
| 16 | + ("2022.2", "2022.2"), |
| 17 | + ("12.20.12-----451---14-1-4-41", "12.20.12_451_14_1_4_41"), |
| 18 | + ("1.0b2.dev1", "1.0b2.dev1"), |
| 19 | + ("1.0+abc.7", "1.0+abc.7"), |
| 20 | + ], |
| 21 | +) |
| 22 | +def test_escape_version(version: str, expected: str) -> None: |
| 23 | + assert escape_version(version) == expected |
| 24 | + |
| 25 | + |
| 26 | +@pytest.mark.parametrize( |
| 27 | + "name,expected", |
| 28 | + [ |
| 29 | + ("foo", "foo"), |
| 30 | + ("foo-bar", "foo_bar"), |
| 31 | + ("FOO-bAr", "FOO_bAr"), |
| 32 | + ("foo.bar", "foo.bar"), |
| 33 | + ("foo123-ba---.r", "foo123_ba_.r"), |
| 34 | + ], |
| 35 | +) |
| 36 | +def test_escape_name(name: str, expected: str) -> None: |
| 37 | + assert escape_name(name) == expected |
0 commit comments