pypa-hatch/tests/project/test_utils.py

50 lines
1.3 KiB
Python

import pytest
from hatch.project.utils import parse_inline_script_metadata
class TestParseInlineScriptMetadata:
def test_no_metadata(self):
assert parse_inline_script_metadata('') is None
def test_too_many_blocks(self, helpers):
script = helpers.dedent(
"""
# /// script
# dependencies = ["foo"]
# ///
# /// script
# dependencies = ["foo"]
# ///
"""
)
with pytest.raises(ValueError, match='^Multiple inline metadata blocks found for type: script$'):
parse_inline_script_metadata(script)
def test_correct(self, helpers):
script = helpers.dedent(
"""
# /// script
# embedded-csharp = '''
# /// <summary>
# /// text
# ///
# /// </summary>
# public class MyClass { }
# '''
# ///
"""
)
assert parse_inline_script_metadata(script) == {
'embedded-csharp': helpers.dedent(
"""
/// <summary>
/// text
///
/// </summary>
public class MyClass { }
"""
),
}