diff --git a/engine/apps/public_api/serializers/escalation_policies.py b/engine/apps/public_api/serializers/escalation_policies.py index 34177855..ba40ff30 100644 --- a/engine/apps/public_api/serializers/escalation_policies.py +++ b/engine/apps/public_api/serializers/escalation_policies.py @@ -41,7 +41,7 @@ class EscalationPolicySerializer(EagerLoadingMixin, OrderedModelSerializer): escalation_chain_id = OrganizationFilteredPrimaryKeyRelatedField( queryset=EscalationChain.objects, source="escalation_chain" ) - type = EscalationPolicyTypeField(source="step", allow_null=True) + type = EscalationPolicyTypeField(source="step") duration = serializers.ChoiceField(required=False, source="wait_delay", choices=EscalationPolicy.DURATION_CHOICES) persons_to_notify = UsersFilteredByOrganizationField( queryset=User.objects, diff --git a/engine/apps/public_api/tests/test_escalation_policies.py b/engine/apps/public_api/tests/test_escalation_policies.py index da2a5271..9cf961ac 100644 --- a/engine/apps/public_api/tests/test_escalation_policies.py +++ b/engine/apps/public_api/tests/test_escalation_policies.py @@ -148,6 +148,27 @@ def test_create_escalation_policy( assert response.data == serializer.data +@pytest.mark.django_db +def test_create_empty_escalation_policy( + make_organization_and_user_with_token, + escalation_policies_setup, +): + organization, user, token = make_organization_and_user_with_token() + escalation_chain, _, _ = escalation_policies_setup(organization, user) + + data_for_create = { + "escalation_chain_id": escalation_chain.public_primary_key, + "type": None, + } + + client = APIClient() + url = reverse("api-public:escalation_policies-list") + response = client.post(url, data=data_for_create, format="json", HTTP_AUTHORIZATION=token) + + assert response.status_code == status.HTTP_400_BAD_REQUEST + assert response.data["type"][0] == "This field may not be null." + + @pytest.mark.django_db def test_create_escalation_policy_manual_order_duplicated_position( make_organization_and_user_with_token, diff --git a/engine/apps/user_management/tests/test_organization.py b/engine/apps/user_management/tests/test_organization.py index 90fb73a6..58636f88 100644 --- a/engine/apps/user_management/tests/test_organization.py +++ b/engine/apps/user_management/tests/test_organization.py @@ -278,41 +278,3 @@ def test_get_notifiable_direct_paging_integrations( make_channel_filter(arc, is_default=False) notifiable_direct_paging_integrations = _assert(org, arc) assert notifiable_direct_paging_integrations.count() == 1 - - -@pytest.mark.parametrize( - "is_rbac_permissions_enabled_initially,rollout_percentage,expected", - [ - # env var is not set, no orgs have is_rbac_permissions_enabled set - (False, 0.0, False), - # env var is not set but is_rbac_permissions_enabled is already set for all orgs - (True, 0.0, True), - # env var is set, only some orgs should be considered - (False, 0.5, "partial"), - (False, 1.0, True), - ], -) -@pytest.mark.django_db -def test_should_be_considered_for_rbac_permissioning( - make_organization, - settings, - is_rbac_permissions_enabled_initially, - rollout_percentage, - expected, -): - NUM_ORGS = 5 - settings.CLOUD_RBAC_ROLLOUT_PERCENTAGE = rollout_percentage - - orgs = [ - make_organization(is_rbac_permissions_enabled=is_rbac_permissions_enabled_initially) for _ in range(NUM_ORGS) - ] - - assert all(org.is_rbac_permissions_enabled is is_rbac_permissions_enabled_initially for org in orgs) - - if expected == "partial": - assert all( - org.should_be_considered_for_rbac_permissioning() == (org.id <= NUM_ORGS * rollout_percentage) - for org in orgs - ) - else: - assert all(org.should_be_considered_for_rbac_permissioning() is expected for org in orgs)