Source code for infrahouse_toolkit.terraform.tests.test_parse_comment
import pytest
from infrahouse_toolkit.terraform import RunResult, TFStatus, parse_comment
from infrahouse_toolkit.terraform.backends import TFS3Backend
from infrahouse_toolkit.terraform.exceptions import IHParseError
from infrahouse_toolkit.terraform.status import RunOutput
[docs]@pytest.mark.parametrize("comment_text", ["", None, "foo"])
def test_parse_comment_raises(comment_text):
with pytest.raises(IHParseError):
parse_comment(comment_text)
[docs]@pytest.mark.parametrize(
"comment_text, status",
[
(
TFStatus(
TFS3Backend("foo_backet", "path/to/tf.state"),
success=True,
run_result=RunResult(1, 1, 1),
run_output=RunOutput("no stdout", None),
).comment,
TFStatus(
TFS3Backend("foo_backet", "path/to/tf.state"),
success=True,
run_result=RunResult(1, 1, 1),
run_output=RunOutput("no stdout", None),
),
),
(
TFStatus(
TFS3Backend("foo_backet", "path/to/tf.state"),
success=True,
run_result=RunResult(1, 1, 1),
run_output=RunOutput(None, None),
).comment,
TFStatus(
TFS3Backend("foo_backet", "path/to/tf.state"),
success=True,
run_result=RunResult(1, 1, 1),
run_output=RunOutput(None, None),
),
),
# lines are terminated by \r\n
(
"""# **`s3://foo_backet/path/to/tf.state`**
| Success | 🟢 Add | 🟡 Change | 🔴 Destroy |
|:---------:|--------:|-----------:|------------:|
| ✅ | 1 | 1 | 1 |
<details><summary>STDOUT</summary>
```no stdout```
</details>
<details><summary>STDERR</summary>
```no output```
</details>
<details><summary><i>metadata</i></summary>\r
<p>
```
eyJzMzovL2Zvb19iYWNrZXQvcGF0aC90by90Zi5zdGF0ZSI6IHsic3VjY2VzcyI6IHRydWUsICJzdGRvdXQiOiAibm8gc3Rkb3V0IiwgInN0ZGVyciI6IG51bGwsICJhZGQiOiAxLCAiY2hhbmdlIjogMSwgImRlc3Ryb3kiOiAxfX0=
```
</p>
</details>
""",
TFStatus(
TFS3Backend("foo_backet", "path/to/tf.state"),
success=True,
run_result=RunResult(1, 1, 1),
run_output=RunOutput("no stdout", None),
),
),
],
)
def test_parse_comment(comment_text, status):
parsed_status = parse_comment(comment_text)
print(f"\n{parsed_status = }")
print(f" {status = }")
assert parsed_status == status