def test_notification_on_get(self, mock_hutil, mock_getquery, mock_get_notifications): req = MagicMock() req.context.return_value = {} resp = falcon.Response() mock_hutil.return_value = {} mock_getquery.return_value = {} mock_get_notifications.return_value = {} NotificationHistory.on_get(req, resp) assert resp.status == falcon.HTTP_200
def test_get_query_ts(self): with patch.object(HistoryUtil, 'model_value') as mock_model_value: mock_model_value.return_value = 'bar' ts_filter = {} ts_filter['$gte'] = dateutil.parser.parse( "2021-07-13T21:31:04.912000Z") ts_filter['$lte'] = dateutil.parser.parse( "2021-07-13T21:31:45.560000Z") filter_query = { "key": "foo", "dateFrom": "2021-07-13T21:31:04.912000Z", "dateTo": "2021-07-13T21:31:45.560000Z" } returned_query = NotificationHistory.get_query(filter_query) expected_query = { 'query': { 'metaAttrsFilter.key': 'bar', 'ts': ts_filter }, 'limit_val': 0, 'sort': [('ts', -1)], 'filter': { '_id': False, '@timestamp': False, '@version': False } } assert returned_query == expected_query
def test_get_notifications(self, mock_find): mock_find.return_value = { "meta": [{ "ts": 1567704621 }, { "ts": 1567701021 }, { "ts": 1567099821 }] } query = {"query": "", "filter": "", "limit_val": 0, "sort": 0} assert NotificationHistory.get_notifications(mock_find, query) == []
def test_get_query_limit(self): with patch.object(HistoryUtil, 'model_value') as mock_model_value: mock_model_value.return_value = 'bar' filter_query = {"key": "foo", "limit": 15} returned_query = NotificationHistory.get_query(filter_query) expected_query = { 'query': { 'metaAttrsFilter.key': 'bar' }, 'limit_val': 15, 'sort': [('ts', -1)], 'filter': { '_id': False, '@timestamp': False, '@version': False } } assert returned_query == expected_query
#!/usr/local/bin/python # -*- coding: utf-8 -*- """ App runner """ # System imports # Third-party imports import falcon # Local imports from history import conf from history.api.models import DeviceHistory, STHHistory, AuthMiddleware, NotificationHistory, LoggingInterface # Create falcon app app = falcon.API(middleware=[AuthMiddleware()]) app.add_route('/device/{device_id}/history', DeviceHistory()) app.add_route('/notifications/history', NotificationHistory()) app.add_route('/STH/v1/contextEntities/type/{device_type}/id/{device_id}/attributes/{attr}', STHHistory()) app.add_route('/log', LoggingInterface()) # Useful for debugging problems in API, it works with pdb if __name__ == '__main__': from wsgiref import simple_server # NOQA httpd = simple_server.make_server('127.0.0.1', 8000, app) httpd.serve_forever()