| # Copyright 2023 The ChromiumOS Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Test the textproto module.""" |
| |
| import pytest |
| |
| from chromite.format import formatters |
| |
| |
| # None means input is already formatted to avoid having to repeat. |
| @pytest.mark.parametrize( |
| "data,exp", |
| ( |
| ("", None), |
| ("\n FOO {}\n\n\n", "FOO {}\n"), |
| ("FOO { BAR { blah: 1 }\n}", "FOO {\n BAR { blah: 1 }\n}\n"), |
| ), |
| ) |
| def test_check_format(data, exp) -> None: |
| """Verify inputs match expected outputs.""" |
| if exp is None: |
| exp = data |
| assert exp == formatters.textproto.Data(data) |
| |
| |
| @pytest.mark.parametrize( |
| "data", |
| ('"',), |
| ) |
| def test_format_failures(data) -> None: |
| """Verify inputs raise ParseErrors as expected.""" |
| with pytest.raises(formatters.ParseError): |
| formatters.textproto.Data(data) |