def create_app(secret_key, token, tracker_manager, clients_manager, notifier_manager, settings_manager, engine_runner, log_manager): AuthMiddleware.init(secret_key, token, lambda: settings_manager.get_is_authentication_enabled()) app = create_api() add_static_route(app, 'webapp') app.add_route('/api/login', Login(settings_manager)) app.add_route('/api/logout', Logout()) app.add_route('/api/topics', TopicCollection(tracker_manager)) app.add_route('/api/topics/{id}', Topic(tracker_manager)) app.add_route('/api/topics/{id}/reset_status', TopicResetStatus(tracker_manager)) app.add_route('/api/topics/parse', TopicParse(tracker_manager)) app.add_route('/api/trackers', TrackerCollection(tracker_manager)) app.add_route('/api/trackers/{tracker}', Tracker(tracker_manager)) app.add_route('/api/trackers/{tracker}/check', TrackerCheck(tracker_manager)) app.add_route('/api/clients', ClientCollection(clients_manager)) app.add_route('/api/clients/{client}', Client(clients_manager)) app.add_route('/api/clients/{client}/check', ClientCheck(clients_manager)) app.add_route('/api/clients/{client}/default', ClientDefault(clients_manager)) app.add_route('/api/notifiers', NotifierCollection(notifier_manager)) app.add_route('/api/notifiers/{notifier}', Notifier(notifier_manager)) app.add_route('/api/notifiers/{notifier}/check', NotifierCheck(notifier_manager)) app.add_route('/api/notifiers/{notifier}/enabled', NotifierEnabled(notifier_manager)) app.add_route('/api/settings/authentication', SettingsAuthentication(settings_manager)) app.add_route('/api/settings/password', SettingsPassword(settings_manager)) app.add_route('/api/settings/developer', SettingsDeveloper(settings_manager)) app.add_route('/api/settings/logs', SettingsLogs(settings_manager)) app.add_route('/api/settings/execute', SettingsExecute(engine_runner)) app.add_route('/api/execute/logs', ExecuteLogs(log_manager)) app.add_route('/api/execute/logs/{execute_id}/details', ExecuteLogsDetails(log_manager)) app.add_route('/api/execute/logs/current', ExecuteLogCurrent(log_manager)) app.add_route('/api/execute/call', ExecuteCall(engine_runner)) return app
def test_not_found_delete_topic(self): self.tracker_manager.remove_topic = MagicMock(side_effect=KeyError) topic_parse = Topic(self.tracker_manager) self.api.add_route('/api/topic/{id}', topic_parse) self.simulate_request("/api/topic/{0}".format(1), method="DELETE") self.assertEqual(self.srmock.status, falcon.HTTP_NOT_FOUND)
def test_failed_delete_topic(self): self.tracker_manager.remove_topic = MagicMock(return_value=False) topic_parse = Topic(self.tracker_manager) self.api.add_route('/api/topic/{id}', topic_parse) self.simulate_request("/api/topic/{0}".format(1), method="DELETE", body="{}") self.assertEqual(self.srmock.status, falcon.HTTP_INTERNAL_SERVER_ERROR)
def test_successful_delete_topic(self): self.tracker_manager.remove_topic = MagicMock(return_value=True) topic_parse = Topic(self.tracker_manager) self.api.add_route('/api/topic/{id}', topic_parse) self.simulate_request("/api/topic/{0}".format(1), method="DELETE", body="{}") self.assertEqual(self.srmock.status, falcon.HTTP_NO_CONTENT)
def test_not_found_topic(self): self.tracker_manager.get_topic = MagicMock(side_effect=KeyError) topic_parse = Topic(self.tracker_manager) self.api.add_route('/api/topic/{id}', topic_parse) self.simulate_request("/api/topic/{0}".format(1)) self.assertEqual(self.srmock.status, falcon.HTTP_NOT_FOUND) self.assertTrue( 'application/json' in self.srmock.headers_dict['Content-Type'])
def test_successful_get_topic(self): topic = { 'id': 1, 'display_name': '1', 'last_update': None, 'type': 'plugin' } self.tracker_manager.get_topic = MagicMock(return_value=topic) topic_parse = Topic(self.tracker_manager) self.api.add_route('/api/topic/{id}', topic_parse) body = self.simulate_request("/api/topic/{0}".format(1), decode='utf-8') self.assertEqual(self.srmock.status, falcon.HTTP_OK) self.assertTrue( 'application/json' in self.srmock.headers_dict['Content-Type']) result = json.loads(body) self.assertIsInstance(result, dict) self.assertEqual(result, topic)