Skip to content

Commit 6739552

Browse files
committed
feat(pr_filtering): tests for incident types setting
1 parent efb6163 commit 6739552

File tree

1 file changed

+143
-0
lines changed

1 file changed

+143
-0
lines changed
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
from mhq.service.incidents.incident_filter import ConfigurationsIncidentFilterProcessor
2+
from mhq.store.models.incidents import IncidentFilter
3+
from mhq.store.models.settings.configuration_settings import SettingType
4+
from mhq.service.settings.configuration_settings import (
5+
IncidentTypesSetting,
6+
IncidentPrsSetting,
7+
)
8+
from mhq.store.models.incidents.enums import IncidentType
9+
from mhq.store.models.settings import EntityType
10+
11+
12+
def test_get_incident_types_when_only_types_setting_present():
13+
setting_types = [SettingType.INCIDENT_TYPES_SETTING]
14+
setting_type_to_settings_map = {
15+
SettingType.INCIDENT_TYPES_SETTING: IncidentTypesSetting(
16+
incident_types=[
17+
IncidentType.INCIDENT,
18+
IncidentType.ALERT,
19+
IncidentType.REVERT_PR,
20+
]
21+
)
22+
}
23+
24+
incident_filter = ConfigurationsIncidentFilterProcessor(
25+
incident_filter=IncidentFilter(),
26+
entity_type=EntityType.TEAM,
27+
entity_id="team_id",
28+
setting_types=setting_types,
29+
setting_type_to_settings_map=setting_type_to_settings_map,
30+
).apply()
31+
32+
expected_incident_types = [
33+
IncidentType.INCIDENT,
34+
IncidentType.ALERT,
35+
IncidentType.REVERT_PR,
36+
]
37+
38+
assert incident_filter.incident_types == expected_incident_types
39+
40+
41+
def test_get_incident_types_when_types_setting_is_empty():
42+
setting_types = [SettingType.INCIDENT_TYPES_SETTING]
43+
setting_type_to_settings_map = {
44+
SettingType.INCIDENT_TYPES_SETTING: IncidentTypesSetting(incident_types=[])
45+
}
46+
47+
incident_filter = ConfigurationsIncidentFilterProcessor(
48+
incident_filter=IncidentFilter(),
49+
entity_type=EntityType.TEAM,
50+
entity_id="dummy_id",
51+
setting_types=setting_types,
52+
setting_type_to_settings_map=setting_type_to_settings_map,
53+
).apply()
54+
55+
assert incident_filter.incident_types == []
56+
57+
58+
def test_get_incident_types_when_only_prs_setting_present_returns_empty_list():
59+
setting_types = [SettingType.INCIDENT_PRS_SETTING]
60+
incident_prs_setting = IncidentPrsSetting(
61+
include_revert_prs=True,
62+
title_filters=[],
63+
head_branch_filters=[],
64+
pr_mapping_field="",
65+
pr_mapping_pattern="",
66+
)
67+
setting_type_to_settings_map = {
68+
SettingType.INCIDENT_PRS_SETTING: incident_prs_setting
69+
}
70+
71+
incident_filter = ConfigurationsIncidentFilterProcessor(
72+
incident_filter=IncidentFilter(),
73+
entity_type=EntityType.TEAM,
74+
entity_id="team_id",
75+
setting_types=setting_types,
76+
setting_type_to_settings_map=setting_type_to_settings_map,
77+
).apply()
78+
79+
assert incident_filter.incident_types is None
80+
81+
82+
def test_get_incident_types_when_both_types_and_prs_settings_present_and_includes_revert_prs():
83+
setting_types = [
84+
SettingType.INCIDENT_TYPES_SETTING,
85+
SettingType.INCIDENT_PRS_SETTING,
86+
]
87+
incident_prs_setting = IncidentPrsSetting(
88+
include_revert_prs=True,
89+
title_filters=[],
90+
head_branch_filters=[],
91+
pr_mapping_field="",
92+
pr_mapping_pattern="",
93+
)
94+
setting_type_to_settings_map = {
95+
SettingType.INCIDENT_TYPES_SETTING: IncidentTypesSetting(
96+
incident_types=[IncidentType.INCIDENT, IncidentType.REVERT_PR]
97+
),
98+
SettingType.INCIDENT_PRS_SETTING: incident_prs_setting,
99+
}
100+
101+
incident_filter = ConfigurationsIncidentFilterProcessor(
102+
incident_filter=IncidentFilter(),
103+
entity_type=EntityType.TEAM,
104+
entity_id="team_id",
105+
setting_types=setting_types,
106+
setting_type_to_settings_map=setting_type_to_settings_map,
107+
).apply()
108+
109+
expected_incident_types = [IncidentType.INCIDENT, IncidentType.REVERT_PR]
110+
111+
assert incident_filter.incident_types == expected_incident_types
112+
113+
114+
def test_get_incident_types_when_both_settings_present_and_not_includes_revert_prs():
115+
setting_types = [
116+
SettingType.INCIDENT_TYPES_SETTING,
117+
SettingType.INCIDENT_PRS_SETTING,
118+
]
119+
incident_prs_setting = IncidentPrsSetting(
120+
include_revert_prs=False,
121+
title_filters=[],
122+
head_branch_filters=[],
123+
pr_mapping_field="",
124+
pr_mapping_pattern="",
125+
)
126+
setting_type_to_settings_map = {
127+
SettingType.INCIDENT_TYPES_SETTING: IncidentTypesSetting(
128+
incident_types=[IncidentType.INCIDENT, IncidentType.REVERT_PR]
129+
),
130+
SettingType.INCIDENT_PRS_SETTING: incident_prs_setting,
131+
}
132+
133+
incident_filter = ConfigurationsIncidentFilterProcessor(
134+
incident_filter=IncidentFilter(),
135+
entity_type=EntityType.TEAM,
136+
entity_id="team_id",
137+
setting_types=setting_types,
138+
setting_type_to_settings_map=setting_type_to_settings_map,
139+
).apply()
140+
141+
expected_incident_types = [IncidentType.INCIDENT]
142+
143+
assert incident_filter.incident_types == expected_incident_types

0 commit comments

Comments
 (0)