Skip to content

Commit bd53813

Browse files
joneill-r7igorski-r7
authored andcommitted
PLGN-642: fix schema for get_audit_events, validate schemas in UTs and bump package for snyk vuln (#2224)
1 parent 702f3fb commit bd53813

18 files changed

+157
-59
lines changed

plugins/mimecast/.CHECKSUM

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
},
3838
{
3939
"identifier": "get_audit_events/schema.py",
40-
"hash": "cdeee44f1cb87b304c5e5284c3ff1053"
40+
"hash": "d732699946e1ef41e47bf30354e202a3"
4141
},
4242
{
4343
"identifier": "get_managed_url/schema.py",

plugins/mimecast/help.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1017,7 +1017,7 @@ Most common cloud [URLs](https://www.mimecast.com/tech-connect/documentation/api
10171017

10181018
# Version History
10191019

1020-
* 5.3.3 - Task `monitor_siem_logs` improved error logging | SDK bump | fix output schema for `find_groups`.
1020+
* 5.3.3 - Task `monitor_siem_logs` improved error logging | SDK bump | fix schema for `find_groups` & `get_audit_events` | bump validators version.
10211021
* 5.3.2 - Connection: added regions USB and USBCOM | Monitor SIEM Logs: added logs for request and results information, removed `token` input parameter, updated pagination handler
10221022
* 5.3.1 - Monitor SIEM Logs: stop parsing datetime field
10231023
* 5.3.0 - Handled rate limiting error messaging | Update to latest plugin SDK

plugins/mimecast/komand_mimecast/actions/get_audit_events/schema.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ class GetAuditEventsInput(insightconnect_plugin_runtime.Input):
3636
"order": 2
3737
}
3838
},
39+
"required": [
40+
"audit_events_data"
41+
],
3942
"definitions": {
4043
"audit_events_data": {
4144
"type": "object",
@@ -67,13 +70,12 @@ class GetAuditEventsInput(insightconnect_plugin_runtime.Input):
6770
"type": "string"
6871
},
6972
"order": 4
70-
},
71-
"required": [
72-
"endDateTime",
73-
"startDateTime",
74-
"audit_events_data"
75-
]
76-
}
73+
}
74+
},
75+
"required": [
76+
"endDateTime",
77+
"startDateTime"
78+
]
7779
},
7880
"audit_events_request_pagination": {
7981
"type": "object",
@@ -124,6 +126,9 @@ class GetAuditEventsOutput(insightconnect_plugin_runtime.Output):
124126
"order": 1
125127
}
126128
},
129+
"required": [
130+
"response"
131+
],
127132
"definitions": {
128133
"audit_events_response": {
129134
"type": "object",

plugins/mimecast/requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# List third-party dependencies here, separated by newlines.
22
# All dependencies must be version-pinned, eg. requests==1.2.0
33
# See: https://pip.pypa.io/en/stable/user_guide/#requirements-files
4-
validators==0.18.2
4+
validators==0.21.0
55
parameterized==0.8.1
66
python-dateutil==2.6.1
7+
jsonschema==3.2.0

plugins/mimecast/unit_test/test_add_group_member.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
import os
22
import sys
3+
from jsonschema import validate
34
from unittest import TestCase
45
from unittest.mock import patch
56

67
from insightconnect_plugin_runtime.exceptions import PluginException
78

89
sys.path.append(os.path.abspath("../"))
910
from komand_mimecast.actions import AddGroupMember
11+
from komand_mimecast.actions.add_group_member.schema import AddGroupMemberOutput, AddGroupMemberInput
1012
from komand_mimecast.util.constants import BASIC_ASSISTANCE_MESSAGE, ERROR_CASES, GROUP_MEMBER_ALREADY_EXISTS_ERROR
1113

1214
from util import Util
@@ -18,12 +20,15 @@ class TestAddGroupMember(TestCase):
1820
def setUpClass(cls) -> None:
1921
cls.action = Util.default_connector(AddGroupMember())
2022

21-
def test_add_group_member(self, mock_request):
22-
actual = self.action.run(Util.load_json("inputs/add_group_member.json.exp"))
23+
def test_add_group_member(self, _mock_request):
24+
input_data = Util.load_json("inputs/add_group_member.json.exp")
25+
actual = self.action.run(input_data)
26+
validate(input_data, AddGroupMemberInput.schema)
2327
expect = Util.load_json("expected/add_group_member_exp.json.exp")
2428
self.assertEqual(expect, actual)
29+
validate(actual, AddGroupMemberOutput.schema)
2530

26-
def test_bad_add_group_member(self, mock_request):
31+
def test_bad_add_group_member(self, _mock_request):
2732
with self.assertRaises(PluginException) as exception:
2833
self.action.run(Util.load_json("inputs/add_group_member_bad.json.exp"))
2934
self.assertEqual(exception.exception.cause, ERROR_CASES.get(GROUP_MEMBER_ALREADY_EXISTS_ERROR))
Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
import os
22
import sys
3+
from jsonschema import validate
34
from unittest import TestCase
45
from unittest.mock import patch
56

67
sys.path.append(os.path.abspath("../"))
78

89
from komand_mimecast.actions import CreateBlockedSenderPolicy
9-
10+
from komand_mimecast.actions.create_blocked_sender_policy.schema import (
11+
CreateBlockedSenderPolicyOutput,
12+
CreateBlockedSenderPolicyInput,
13+
)
1014
from util import Util
1115

1216

@@ -16,7 +20,10 @@ class TestCreateBlockedSenderPolicy(TestCase):
1620
def setUpClass(cls) -> None:
1721
cls.action = Util.default_connector(CreateBlockedSenderPolicy())
1822

19-
def test_create_blocked_sender_policy(self, mocked_request):
20-
actual = self.action.run(Util.load_json("inputs/create_blocked_sender_policy.json.exp"))
23+
def test_create_blocked_sender_policy(self, _mocked_request):
24+
input_data = Util.load_json("inputs/create_blocked_sender_policy.json.exp")
25+
actual = self.action.run(input_data)
26+
validate(input_data, CreateBlockedSenderPolicyInput.schema)
2127
expect = Util.load_json("expected/create_blocked_sender_policy.json.exp")
2228
self.assertEqual(expect, actual)
29+
validate(actual, CreateBlockedSenderPolicyOutput.schema)

plugins/mimecast/unit_test/test_create_managed_url.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
import json
22
import os
33
import sys
4+
from jsonschema import validate
45
from unittest import TestCase
56
from unittest.mock import patch
67

78
from insightconnect_plugin_runtime.exceptions import PluginException
89

910
sys.path.append(os.path.abspath("../"))
1011
from komand_mimecast.actions import CreateManagedUrl
12+
from komand_mimecast.actions.create_managed_url.schema import CreateManagedUrlOutput, CreateManagedUrlInput
1113
from komand_mimecast.util.constants import BASIC_ASSISTANCE_MESSAGE, ERROR_CASES, MANAGED_URL_EXISTS_ERROR
1214

1315
from util import Util
@@ -19,12 +21,15 @@ class TestCreateManagedURl(TestCase):
1921
def setUpClass(cls) -> None:
2022
cls.action = Util.default_connector(CreateManagedUrl())
2123

22-
def test_create_managed_url(self, mocked_request):
23-
actual = self.action.run(Util.load_json("inputs/create_managed_url.json.exp"))
24+
def test_create_managed_url(self, _mocked_request):
25+
input_data = Util.load_json("inputs/create_managed_url.json.exp")
26+
validate(input_data, CreateManagedUrlInput.schema)
27+
actual = self.action.run(input_data)
2428
expect = Util.load_json("expected/create_managed_url.json.exp")
2529
self.assertEqual(expect, actual)
30+
validate(actual, CreateManagedUrlOutput.schema)
2631

27-
def test_bad_create_managed_url(self, mocked_request):
32+
def test_bad_create_managed_url(self, _mocked_request):
2833
with self.assertRaises(PluginException) as exception:
2934
self.action.run(Util.load_json("inputs/create_managed_url_bad.json.exp"))
3035
self.assertEqual(exception.exception.cause, ERROR_CASES.get(MANAGED_URL_EXISTS_ERROR))

plugins/mimecast/unit_test/test_decode_url.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import os
22
import sys
3+
from jsonschema import validate
34
from unittest import TestCase
45
from unittest.mock import patch
56

67
sys.path.append(os.path.abspath("../"))
78

89
from komand_mimecast.actions import DecodeUrl
10+
from komand_mimecast.actions.decode_url.schema import DecodeUrlOutput, DecodeUrlInput
911

1012
from util import Util
1113

@@ -16,7 +18,10 @@ class TestDecodeURL(TestCase):
1618
def setUpClass(cls) -> None:
1719
cls.action = Util.default_connector(DecodeUrl())
1820

19-
def test_decode_url(self, mocked_request):
20-
actual = self.action.run(Util.load_json("inputs/decode_url.json.exp"))
21+
def test_decode_url(self, _mocked_request):
22+
input_data = Util.load_json("inputs/decode_url.json.exp")
23+
validate(input_data, DecodeUrlInput.schema)
24+
actual = self.action.run(input_data)
2125
expect = Util.load_json("expected/decode_url.json.exp")
2226
self.assertEqual(expect, actual)
27+
validate(actual, DecodeUrlOutput.schema)

plugins/mimecast/unit_test/test_delete_blocked_sender_policy.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
import os
22
import sys
3+
from jsonschema import validate
34
from unittest import TestCase
45
from unittest.mock import patch, MagicMock
56

67
sys.path.append(os.path.abspath("../"))
78
from insightconnect_plugin_runtime.exceptions import PluginException
89
from komand_mimecast.actions import DeleteBlockedSenderPolicy
9-
from komand_mimecast.util.constants import BASIC_ASSISTANCE_MESSAGE, ERROR_CASES, MANAGED_URL_NOT_FOUND_ERROR
10+
from komand_mimecast.actions.delete_blocked_sender_policy.schema import (
11+
DeleteBlockedSenderPolicyOutput,
12+
DeleteBlockedSenderPolicyInput,
13+
)
1014

1115
from util import Util
1216

@@ -17,12 +21,15 @@ class TestDeleteBlockedSenderPolicy(TestCase):
1721
def setUpClass(cls) -> None:
1822
cls.action = Util.default_connector(DeleteBlockedSenderPolicy())
1923

20-
def test_delete_blocked_sender_policy(self, mocked_request: MagicMock):
21-
actual = self.action.run(Util.load_json("inputs/delete_blocked_sender_policy.json.exp"))
24+
def test_delete_blocked_sender_policy(self, _mocked_request: MagicMock):
25+
input_data = Util.load_json("inputs/delete_blocked_sender_policy.json.exp")
26+
validate(input_data, DeleteBlockedSenderPolicyInput.schema)
27+
actual = self.action.run(input_data)
2228
expect = Util.load_json("expected/delete_blocked_sender_policy.json.exp")
2329
self.assertEqual(expect, actual)
30+
validate(actual, DeleteBlockedSenderPolicyOutput.schema)
2431

25-
def test_bad_delete_blocked_sender_policy(self, mocked_request: MagicMock):
32+
def test_bad_delete_blocked_sender_policy(self, _mocked_request: MagicMock):
2633
with self.assertRaises(PluginException) as exception:
2734
self.action.run(Util.load_json("inputs/delete_blocked_sender_policy_bad.json.exp"))
2835
self.assertEqual(exception.exception.cause, PluginException.causes[PluginException.Preset.NOT_FOUND])

plugins/mimecast/unit_test/test_delete_group_member.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import os
22
import sys
3+
from jsonschema import validate
34
from unittest import TestCase
45
from unittest.mock import patch
56

67
sys.path.append(os.path.abspath("../"))
78
from insightconnect_plugin_runtime.exceptions import PluginException
89
from komand_mimecast.actions import DeleteGroupMember
10+
from komand_mimecast.actions.delete_group_member.schema import DeleteGroupMemberOutput, DeleteGroupMemberInput
911
from komand_mimecast.util.constants import BASIC_ASSISTANCE_MESSAGE, ERROR_CASES, FOLDER_EMAIL_NOT_FOUND_ERROR
1012

1113
from util import Util
@@ -17,10 +19,13 @@ class TestDeleteGroupMember(TestCase):
1719
def setUpClass(cls) -> None:
1820
cls.action = Util.default_connector(DeleteGroupMember())
1921

20-
def test_delete_group_member(self, mocked_request):
21-
actual = self.action.run(Util.load_json("inputs/delete_group_member.json.exp"))
22+
def test_delete_group_member(self, _mocked_request):
23+
input_data = Util.load_json("inputs/delete_group_member.json.exp")
24+
validate(input_data, DeleteGroupMemberInput.schema)
25+
actual = self.action.run(input_data)
2226
expect = Util.load_json("expected/delete_group_member.json.exp")
2327
self.assertEqual(expect, actual)
28+
validate(actual, DeleteGroupMemberOutput.schema)
2429

2530
def test_bad_delete_group_member(self, mocked_request):
2631
with self.assertRaises(PluginException) as exception:

0 commit comments

Comments
 (0)