コード例 #1
0
ファイル: websocket_test.py プロジェクト: 13625025773/h
    def test_expands_uris_in_uri_filter_with_session(self, expand_uri, socket,
                                                     SocketFilter):
        expand_uri.return_value = [
            "http://example.com",
            "http://example.com/alter",
            "http://example.com/print",
        ]

        session = mock.sentinel.db_session
        message = websocket.Message(
            socket=socket,
            payload={
                "filter": {
                    "actions": {},
                    "match_policy":
                    "include_any",
                    "clauses": [{
                        "field": "/uri",
                        "operator": "equals",
                        "value": "http://example.com",
                    }],
                }
            },
        )

        websocket.handle_filter_message(message, session=session)

        # Use Any.list to do order insensitive matching
        expected_values = Any.list.containing(expand_uri.return_value).only()
        SocketFilter.set_filter.assert_called_once_with(
            socket,
            Any.dict.containing(
                {"clauses": [Any.dict.containing({"value":
                                                  expected_values})]}),
        )
コード例 #2
0
ファイル: websocket_test.py プロジェクト: hypothesis/h
    def test_expands_uris_in_uri_filter_with_session(self, expand_uri, socket):
        expand_uri.return_value = [
            "http://example.com",
            "http://example.com/alter",
            "http://example.com/print",
        ]
        session = mock.sentinel.db_session
        message = websocket.Message(
            socket=socket,
            payload={
                "filter": {
                    "actions": {},
                    "match_policy": "include_any",
                    "clauses": [
                        {
                            "field": "/uri",
                            "operator": "equals",
                            "value": "http://example.com",
                        }
                    ],
                }
            },
        )

        websocket.handle_filter_message(message, session=session)

        uri_filter = socket.filter.filter["clauses"][0]
        uri_values = uri_filter["value"]
        assert len(uri_values) == 3
        assert "http://example.com" in uri_values
        assert "http://example.com/alter" in uri_values
        assert "http://example.com/print" in uri_values
コード例 #3
0
    def test_missing_filter_error(self, socket):
        message = websocket.Message(socket=socket, payload={"type": "filter"})

        with mock.patch.object(websocket.Message, "reply") as mock_reply:
            websocket.handle_filter_message(message)

        mock_reply.assert_called_once_with(Any.dict.containing(["error"]), ok=False)
コード例 #4
0
ファイル: websocket_test.py プロジェクト: ziqizh/h
    def test_expands_uris_in_uri_filter_with_session(self, expand_uri, socket):
        expand_uri.return_value = ['http://example.com',
                                   'http://example.com/alter',
                                   'http://example.com/print']
        session = mock.sentinel.db_session
        message = websocket.Message(socket=socket, payload={
            'filter': {
                'actions': {},
                'match_policy': 'include_all',
                'clauses': [{
                    'field': '/uri',
                    'operator': 'equals',
                    'value': 'http://example.com',
                }],
            }
        })

        websocket.handle_filter_message(message, session=session)

        uri_filter = socket.filter.filter['clauses'][0]
        uri_values = uri_filter['value']
        assert len(uri_values) == 3
        assert 'http://example.com' in uri_values
        assert 'http://example.com/alter' in uri_values
        assert 'http://example.com/print' in uri_values
コード例 #5
0
ファイル: websocket_test.py プロジェクト: gnott/h
    def test_expands_uris_in_uri_filter_with_session(self, expand_uri, socket):
        expand_uri.return_value = ['http://example.com',
                                   'http://example.com/alter',
                                   'http://example.com/print']
        session = mock.sentinel.db_session
        message = websocket.Message(socket=socket, payload={
            'filter': {
                'actions': {},
                'match_policy': 'include_all',
                'clauses': [{
                    'field': '/uri',
                    'operator': 'equals',
                    'value': 'http://example.com',
                }],
            }
        })

        websocket.handle_filter_message(message, session=session)

        uri_filter = socket.filter.filter['clauses'][0]
        uri_values = uri_filter['value']
        assert len(uri_values) == 3
        assert 'http://example.com' in uri_values
        assert 'http://example.com/alter' in uri_values
        assert 'http://example.com/print' in uri_values
コード例 #6
0
    def test_expands_uris_in_uri_filter_with_session(self, expand_uri, socket):
        expand_uri.return_value = [
            "http://example.com",
            "http://example.com/alter",
            "http://example.com/print",
        ]
        session = mock.sentinel.db_session
        message = websocket.Message(
            socket=socket,
            payload={
                "filter": {
                    "actions": {},
                    "match_policy": "include_any",
                    "clauses": [
                        {
                            "field": "/uri",
                            "operator": "equals",
                            "value": "http://example.com",
                        }
                    ],
                }
            },
        )

        websocket.handle_filter_message(message, session=session)

        uri_filter = socket.filter.filter["clauses"][0]
        uri_values = uri_filter["value"]
        assert len(uri_values) == 3
        assert "http://example.com" in uri_values
        assert "http://example.com/alter" in uri_values
        assert "http://example.com/print" in uri_values
コード例 #7
0
ファイル: websocket_test.py プロジェクト: hypothesis/h
    def test_missing_filter_error(self, matchers, socket):
        message = websocket.Message(socket=socket, payload={"type": "filter"})

        with mock.patch.object(websocket.Message, "reply") as mock_reply:
            websocket.handle_filter_message(message)

        mock_reply.assert_called_once_with(
            matchers.MappingContaining("error"), ok=False
        )
コード例 #8
0
ファイル: websocket_test.py プロジェクト: gnott/h
    def test_missing_filter_error(self, matchers, socket):
        message = websocket.Message(socket=socket, payload={
            'type': 'filter',
        })

        with mock.patch.object(websocket.Message, 'reply') as mock_reply:
            websocket.handle_filter_message(message)

        mock_reply.assert_called_once_with(matchers.mapping_containing('error'),
                                           ok=False)
コード例 #9
0
ファイル: websocket_test.py プロジェクト: ziqizh/h
    def test_missing_filter_error(self, matchers, socket):
        message = websocket.Message(socket=socket, payload={
            'type': 'filter',
        })

        with mock.patch.object(websocket.Message, 'reply') as mock_reply:
            websocket.handle_filter_message(message)

        mock_reply.assert_called_once_with(matchers.MappingContaining('error'),
                                           ok=False)
コード例 #10
0
    def test_invalid_filter_error(self, validate, socket):
        message = websocket.Message(
            socket=socket, payload={"type": "filter", "filter": {"wibble": "giraffe"}}
        )
        validate.side_effect = ValidationError("kaboom!")

        with mock.patch.object(websocket.Message, "reply") as mock_reply:
            websocket.handle_filter_message(message)

        mock_reply.assert_called_once_with(Any.dict.containing(["error"]), ok=False)
コード例 #11
0
ファイル: websocket_test.py プロジェクト: ziqizh/h
    def test_invalid_filter_error(self, validate, matchers, socket):
        message = websocket.Message(socket=socket, payload={
            'type': 'filter',
            'filter': {'wibble': 'giraffe'},
        })
        validate.side_effect = ValidationError('kaboom!')

        with mock.patch.object(websocket.Message, 'reply') as mock_reply:
            websocket.handle_filter_message(message)

        mock_reply.assert_called_once_with(matchers.MappingContaining('error'),
                                           ok=False)
コード例 #12
0
ファイル: websocket_test.py プロジェクト: gnott/h
    def test_invalid_filter_error(self, validate, matchers, socket):
        message = websocket.Message(socket=socket, payload={
            'type': 'filter',
            'filter': {'wibble': 'giraffe'},
        })
        validate.side_effect = ValidationError('kaboom!')

        with mock.patch.object(websocket.Message, 'reply') as mock_reply:
            websocket.handle_filter_message(message)

        mock_reply.assert_called_once_with(matchers.mapping_containing('error'),
                                           ok=False)
コード例 #13
0
ファイル: websocket_test.py プロジェクト: hypothesis/h
    def test_invalid_filter_error(self, validate, matchers, socket):
        message = websocket.Message(
            socket=socket, payload={"type": "filter", "filter": {"wibble": "giraffe"}}
        )
        validate.side_effect = ValidationError("kaboom!")

        with mock.patch.object(websocket.Message, "reply") as mock_reply:
            websocket.handle_filter_message(message)

        mock_reply.assert_called_once_with(
            matchers.MappingContaining("error"), ok=False
        )
コード例 #14
0
    def test_sets_socket_filter(self, socket, SocketFilter):
        filter = {
            "actions": {},
            "match_policy": "include_any",
            "clauses": [
                {"field": "/uri", "operator": "equals", "value": "http://example.com"}
            ],
        }

        message = websocket.Message(socket=socket, payload={"filter": filter})

        websocket.handle_filter_message(message)

        SocketFilter.set_filter.assert_called_once_with(socket, filter)
コード例 #15
0
ファイル: websocket_test.py プロジェクト: ziqizh/h
    def test_sets_socket_filter(self, socket):
        message = websocket.Message(socket=socket, payload={
            'filter': {
                'actions': {},
                'match_policy': 'include_all',
                'clauses': [{
                    'field': '/uri',
                    'operator': 'equals',
                    'value': 'http://example.com',
                }],
            }
        })

        websocket.handle_filter_message(message)

        assert socket.filter is not None
コード例 #16
0
ファイル: websocket_test.py プロジェクト: gnott/h
    def test_sets_socket_filter(self, socket):
        message = websocket.Message(socket=socket, payload={
            'filter': {
                'actions': {},
                'match_policy': 'include_all',
                'clauses': [{
                    'field': '/uri',
                    'operator': 'equals',
                    'value': 'http://example.com',
                }],
            }
        })

        websocket.handle_filter_message(message)

        assert socket.filter is not None
コード例 #17
0
ファイル: websocket_test.py プロジェクト: ziqizh/h
    def test_expands_uris_using_passed_session(self, expand_uri, socket):
        expand_uri.return_value = ['http://example.com', 'http://example.org/']
        session = mock.sentinel.db_session
        message = websocket.Message(socket=socket, payload={
            'filter': {
                'actions': {},
                'match_policy': 'include_all',
                'clauses': [{
                    'field': '/uri',
                    'operator': 'equals',
                    'value': 'http://example.com',
                }],
            }
        })

        websocket.handle_filter_message(message, session=session)

        expand_uri.assert_called_once_with(session, 'http://example.com')
コード例 #18
0
ファイル: websocket_test.py プロジェクト: gnott/h
    def test_expands_uris_using_passed_session(self, expand_uri, socket):
        expand_uri.return_value = ['http://example.com', 'http://example.org/']
        session = mock.sentinel.db_session
        message = websocket.Message(socket=socket, payload={
            'filter': {
                'actions': {},
                'match_policy': 'include_all',
                'clauses': [{
                    'field': '/uri',
                    'operator': 'equals',
                    'value': 'http://example.com',
                }],
            }
        })

        websocket.handle_filter_message(message, session=session)

        expand_uri.assert_called_once_with(session, 'http://example.com')
コード例 #19
0
    def test_sets_socket_filter(self, socket):
        message = websocket.Message(
            socket=socket,
            payload={
                "filter": {
                    "actions": {},
                    "match_policy":
                    "include_any",
                    "clauses": [{
                        "field": "/uri",
                        "operator": "equals",
                        "value": "http://example.com",
                    }],
                }
            },
        )

        websocket.handle_filter_message(message)

        assert socket.filter is not None
コード例 #20
0
ファイル: websocket_test.py プロジェクト: hypothesis/h
    def test_sets_socket_filter(self, socket):
        message = websocket.Message(
            socket=socket,
            payload={
                "filter": {
                    "actions": {},
                    "match_policy": "include_any",
                    "clauses": [
                        {
                            "field": "/uri",
                            "operator": "equals",
                            "value": "http://example.com",
                        }
                    ],
                }
            },
        )

        websocket.handle_filter_message(message)

        assert socket.filter is not None
コード例 #21
0
    def test_expands_uris_using_passed_session(self, expand_uri, socket):
        expand_uri.return_value = ["http://example.com", "http://example.org/"]
        session = mock.sentinel.db_session
        message = websocket.Message(
            socket=socket,
            payload={
                "filter": {
                    "actions": {},
                    "match_policy":
                    "include_any",
                    "clauses": [{
                        "field": "/uri",
                        "operator": "equals",
                        "value": "http://example.com",
                    }],
                }
            },
        )

        websocket.handle_filter_message(message, session=session)

        expand_uri.assert_called_once_with(session, "http://example.com")
コード例 #22
0
ファイル: websocket_test.py プロジェクト: hypothesis/h
    def test_expands_uris_using_passed_session(self, expand_uri, socket):
        expand_uri.return_value = ["http://example.com", "http://example.org/"]
        session = mock.sentinel.db_session
        message = websocket.Message(
            socket=socket,
            payload={
                "filter": {
                    "actions": {},
                    "match_policy": "include_any",
                    "clauses": [
                        {
                            "field": "/uri",
                            "operator": "equals",
                            "value": "http://example.com",
                        }
                    ],
                }
            },
        )

        websocket.handle_filter_message(message, session=session)

        expand_uri.assert_called_once_with(session, "http://example.com")