From 44e318e0465fc9ce5c7d7115d3b4b2cdf5fac5fc Mon Sep 17 00:00:00 2001 From: Jason Ertel Date: Thu, 7 Apr 2022 10:16:44 -0400 Subject: [PATCH] Provide CLI feedback for missing input --- salt/sensoroni/files/analyzers/urlhaus/urlhaus.py | 7 +++++-- salt/sensoroni/files/analyzers/urlhaus/urlhaus_test.py | 9 ++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/salt/sensoroni/files/analyzers/urlhaus/urlhaus.py b/salt/sensoroni/files/analyzers/urlhaus/urlhaus.py index f83af3536..8efed33ba 100644 --- a/salt/sensoroni/files/analyzers/urlhaus/urlhaus.py +++ b/salt/sensoroni/files/analyzers/urlhaus/urlhaus.py @@ -39,8 +39,11 @@ def analyze(input): def main(): - results = analyze(sys.argv[1]) - print(json.dumps(results)) + if len(sys.argv) == 2: + results = analyze(sys.argv[1]) + print(json.dumps(results)) + else: + print("ERROR: Missing input JSON") if __name__ == "__main__": diff --git a/salt/sensoroni/files/analyzers/urlhaus/urlhaus_test.py b/salt/sensoroni/files/analyzers/urlhaus/urlhaus_test.py index 8a74a11ff..430077f7a 100644 --- a/salt/sensoroni/files/analyzers/urlhaus/urlhaus_test.py +++ b/salt/sensoroni/files/analyzers/urlhaus/urlhaus_test.py @@ -1,4 +1,5 @@ from io import StringIO +import sys from unittest.mock import patch, MagicMock from urlhaus import urlhaus import unittest @@ -6,10 +7,16 @@ import unittest class TestUrlhausMethods(unittest.TestCase): - def test_main(self): + def test_main_missing_input(self): + with patch('sys.stdout', new=StringIO()) as mock_stdout: + urlhaus.main() + self.assertEqual(mock_stdout.getvalue(), "ERROR: Missing input JSON\n") + + def test_main_success(self): output = {"foo": "bar"} with patch('sys.stdout', new=StringIO()) as mock_stdout: with patch('urlhaus.urlhaus.analyze', new=MagicMock(return_value=output)) as mock: + sys.argv = ["cmd", "input"] urlhaus.main() expected = '{"foo": "bar"}\n' self.assertEqual(mock_stdout.getvalue(), expected)