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})]}), )
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
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)
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
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 )
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)
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)
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)
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)
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)
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 )
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)
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
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')
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
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
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")
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")