add tests, test sample files and minor refactor of exit codes in actual hook in order to facilitate testing
diff --git a/tests/detect_aws_credentials_test.py b/tests/detect_aws_credentials_test.py
new file mode 100644
index 0000000..495c574
--- /dev/null
+++ b/tests/detect_aws_credentials_test.py
@@ -0,0 +1,35 @@
+import pytest
+
+from pre_commit_hooks.detect_aws_credentials import main
+from testing.util import get_resource_path
+
+
+# Input filename, expected return value
+TESTS = (
+ ('with_no_secrets.txt', 0),
+ ('with_secrets.txt', 1),
+ ('nonsense.txt', 0),
+ ('ok_json.json', 0),
+)
+
+NO_CREDENTIALS_TEST = (
+ ('with_secrets.txt', 2),
+)
+
+
+@pytest.mark.parametrize(('filename', 'expected_retval'), TESTS)
+def test_detect_aws_credentials(filename, expected_retval):
+ # with a valid credentials file
+ ret = main(
+ [get_resource_path(filename), "--credentials-file=testing/resources/sample_aws_credentials"]
+ )
+ assert ret == expected_retval
+
+
+@pytest.mark.parametrize(('filename', 'expected_retval'), NO_CREDENTIALS_TEST)
+def test_non_existent_credentials(filename, expected_retval):
+ # with a non-existent credentials file
+ ret = main(
+ [get_resource_path(filename), "--credentials-file=testing/resources/credentailsfilethatdoesntexist"]
+ )
+ assert ret == expected_retval