예제 #1
0
    def test_with_dashboard_not_exists__404(
        self,
        not_exists_dashboard: int,
        valid_filter_set_data_for_create: Dict[str, Any],
        client: FlaskClient[Any],
    ):
        # act
        login(client, "admin")
        response = call_create_filter_set(client, not_exists_dashboard,
                                          valid_filter_set_data_for_create)

        # assert
        assert response.status_code == 404
        assert_filterset_was_not_created(valid_filter_set_data_for_create)
예제 #2
0
    def test_with_invalid_owner_type__400(
        self,
        dashboard_id: int,
        valid_filter_set_data_for_create: Dict[str, Any],
        client: FlaskClient[Any],
    ):
        # arrange
        login(client, "admin")
        valid_filter_set_data_for_create[OWNER_TYPE_FIELD] = "OTHER_TYPE"

        # act
        response = call_create_filter_set(client, dashboard_id,
                                          valid_filter_set_data_for_create)

        # assert
        assert response.status_code == 400
        assert_filterset_was_not_created(valid_filter_set_data_for_create)
예제 #3
0
    def test_with_invalid_json_metadata__400(
        self,
        dashboard_id: int,
        valid_filter_set_data_for_create: Dict[str, Any],
        client: FlaskClient[Any],
    ):
        # arrange
        login(client, "admin")
        valid_filter_set_data_for_create[DESCRIPTION_FIELD] = {}

        # act
        response = call_create_filter_set(client, dashboard_id,
                                          valid_filter_set_data_for_create)

        # assert
        assert response.status_code == 400
        assert_filterset_was_not_created(valid_filter_set_data_for_create)
예제 #4
0
    def test_without_json_metadata__400(
        self,
        dashboard_id: int,
        valid_filter_set_data_for_create: Dict[str, Any],
        client: FlaskClient[Any],
    ):
        # arrange
        login(client, "admin")
        valid_filter_set_data_for_create.pop(JSON_METADATA_FIELD, None)

        # act
        response = call_create_filter_set(client, dashboard_id,
                                          valid_filter_set_data_for_create)

        # assert
        assert response.status_code == 400
        assert_filterset_was_not_created(valid_filter_set_data_for_create)
예제 #5
0
    def test_with_none_description__201(
        self,
        dashboard_id: int,
        valid_filter_set_data_for_create: Dict[str, Any],
        client: FlaskClient[Any],
    ):
        # arrange
        login(client, "admin")
        valid_filter_set_data_for_create[DESCRIPTION_FIELD] = None

        # act
        response = call_create_filter_set(client, dashboard_id,
                                          valid_filter_set_data_for_create)

        # assert
        assert response.status_code == 201
        assert_filterset_was_created(valid_filter_set_data_for_create)
예제 #6
0
    def test_with_none_name__400(
        self,
        dashboard_id: int,
        valid_filter_set_data_for_create: Dict[str, Any],
        client: FlaskClient[Any],
    ):
        # arrange
        login(client, "admin")
        valid_filter_set_data_for_create[NAME_FIELD] = None

        # act
        response = call_create_filter_set(client, dashboard_id,
                                          valid_filter_set_data_for_create)

        # assert
        assert response.status_code == 400
        assert_filterset_was_not_created(valid_filter_set_data_for_create)
예제 #7
0
    def test_without_name__400(
        self,
        dashboard_id: int,
        valid_filter_set_data_for_create: Dict[str, Any],
        client: FlaskClient[Any],
    ):
        # arrange
        login(client, "admin")
        valid_filter_set_data_for_create.pop(NAME_FIELD, None)

        # act
        response = call_create_filter_set(client, dashboard_id,
                                          valid_filter_set_data_for_create)

        # assert
        assert response.status_code == 400
        assert get_filter_set_by_dashboard_id(dashboard_id) == []
예제 #8
0
    def test_with_id_field__400(
        self,
        dashboard_id: int,
        valid_filter_set_data_for_create: Dict[str, Any],
        client: FlaskClient[Any],
    ):
        # arrange
        login(client, "admin")
        valid_filter_set_data_for_create["id"] = 1

        # act
        response = call_create_filter_set(client, dashboard_id,
                                          valid_filter_set_data_for_create)

        # assert
        assert response.status_code == 400
        assert response.json["message"]["id"][0] == "Unknown field."
        assert_filterset_was_not_created(valid_filter_set_data_for_create)
예제 #9
0
    def test_without_owner_id_when_owner_type_is_user__400(
        self,
        dashboard_id: int,
        valid_filter_set_data_for_create: Dict[str, Any],
        client: FlaskClient[Any],
    ):
        # arrange
        login(client, "admin")
        valid_filter_set_data_for_create[OWNER_TYPE_FIELD] = USER_OWNER_TYPE
        valid_filter_set_data_for_create.pop(OWNER_ID_FIELD, None)

        # act
        response = call_create_filter_set(client, dashboard_id,
                                          valid_filter_set_data_for_create)

        # assert
        assert response.status_code == 400
        assert_filterset_was_not_created(valid_filter_set_data_for_create)
예제 #10
0
    def test_when_caller_is_regular_user_and_owner_type_is_dashboard__403(
        self,
        dashboard_id: int,
        test_users: Dict[str, int],
        valid_filter_set_data_for_create: Dict[str, Any],
        client: FlaskClient[Any],
    ):
        # arrange
        login(client, FILTER_SET_OWNER_USERNAME)
        valid_filter_set_data_for_create[OWNER_TYPE_FIELD] = DASHBOARD_OWNER_TYPE
        valid_filter_set_data_for_create[OWNER_ID_FIELD] = dashboard_id

        # act
        response = call_create_filter_set(
            client, dashboard_id, valid_filter_set_data_for_create
        )

        # assert
        assert response.status_code == 403
        assert_filterset_was_not_created(valid_filter_set_data_for_create)
예제 #11
0
    def test_when_caller_is_admin_and_owner_type_is_dashboard__201(
        self,
        dashboard_id: int,
        test_users: Dict[str, int],
        valid_filter_set_data_for_create: Dict[str, Any],
        client: FlaskClient[Any],
    ):
        # arrange
        login(client, "admin")
        valid_filter_set_data_for_create[OWNER_TYPE_FIELD] = DASHBOARD_OWNER_TYPE
        valid_filter_set_data_for_create[OWNER_ID_FIELD] = dashboard_id

        # act
        response = call_create_filter_set(
            client, dashboard_id, valid_filter_set_data_for_create
        )

        # assert
        assert response.status_code == 201
        assert_filterset_was_created(valid_filter_set_data_for_create)
예제 #12
0
    def test_when_caller_is_regular_user_and_owner_is_admin__201(
        self,
        dashboard_id: int,
        test_users: Dict[str, int],
        valid_filter_set_data_for_create: Dict[str, Any],
        client: FlaskClient[Any],
    ):
        # arrange
        login(client, FILTER_SET_OWNER_USERNAME)
        valid_filter_set_data_for_create[OWNER_TYPE_FIELD] = USER_OWNER_TYPE
        valid_filter_set_data_for_create[OWNER_ID_FIELD] = test_users[
            ADMIN_USERNAME_FOR_TEST]

        # act
        response = call_create_filter_set(client, dashboard_id,
                                          valid_filter_set_data_for_create)

        # assert
        assert response.status_code == 201
        assert_filterset_was_created(valid_filter_set_data_for_create)