50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
|
|
import json
|
||
|
|
import unittest
|
||
|
|
from pathlib import Path
|
||
|
|
from tempfile import TemporaryDirectory
|
||
|
|
|
||
|
|
from utils import check_hadolint_sarif
|
||
|
|
|
||
|
|
|
||
|
|
class TestCheckHadolintSarif(unittest.TestCase):
|
||
|
|
def test_main_returns_zero_for_clean_sarif(self):
|
||
|
|
sarif_payload = {
|
||
|
|
"runs": [
|
||
|
|
{
|
||
|
|
"results": [],
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
|
||
|
|
with TemporaryDirectory() as temp_dir:
|
||
|
|
sarif_path = Path(temp_dir) / "clean.sarif"
|
||
|
|
sarif_path.write_text(json.dumps(sarif_payload), encoding="utf-8")
|
||
|
|
|
||
|
|
exit_code = check_hadolint_sarif.main([str(sarif_path)])
|
||
|
|
|
||
|
|
self.assertEqual(exit_code, 0)
|
||
|
|
|
||
|
|
def test_main_returns_one_for_warnings_or_errors(self):
|
||
|
|
sarif_payload = {
|
||
|
|
"runs": [
|
||
|
|
{
|
||
|
|
"results": [
|
||
|
|
{"level": "warning"},
|
||
|
|
{"level": "error"},
|
||
|
|
],
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
|
||
|
|
with TemporaryDirectory() as temp_dir:
|
||
|
|
sarif_path = Path(temp_dir) / "warnings.sarif"
|
||
|
|
sarif_path.write_text(json.dumps(sarif_payload), encoding="utf-8")
|
||
|
|
|
||
|
|
exit_code = check_hadolint_sarif.main([str(sarif_path)])
|
||
|
|
|
||
|
|
self.assertEqual(exit_code, 1)
|
||
|
|
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
unittest.main()
|