async def test_confserver_exceptions(): with LogCapture() as l: conf_server = bumper.ConfServer(("127.0.0.1", 8007), usessl=True) conf_server.confserver_app() conf_server.site = web.TCPSite #bind permission conf_server.site.start = mock.Mock(side_effect=OSError( 1, "error while attempting to bind on address ('127.0.0.1', 8007): permission denied" )) await conf_server.start_server() #asyncio Cancel conf_server.site = web.TCPSite conf_server.site.start = mock.Mock(side_effect=asyncio.CancelledError) await conf_server.start_server() #general exception conf_server.site = web.TCPSite conf_server.site.start = mock.Mock(side_effect=Exception(1, "general")) await conf_server.start_server() l.check_present(( "confserver", "ERROR", "error while attempting to bind on address ('127.0.0.1', 8007): permission denied" ))
#!/usr/bin/env python3 import logging import bumper import sys, socket logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)-8s %(message)s') conf_address = (socket.gethostbyname(socket.gethostname()), 8007) xmpp_address = (socket.gethostbyname(socket.gethostname()), 5223) # start conf server (async) conf_server = bumper.ConfServer(conf_address, ssl=False, async=True) # start xmpp server (sync) xmpp_server = bumper.XMPPServer(xmpp_address) conf_server.disconnect()
xmpp_address = (listen_host, 5223) mqtt_address = (listen_host, 8883) # start mqtt server on port 8883 (async) mqtt_server = bumper.MQTTServer(mqtt_address, run_async=True, bumper_bots=bumper.bumper_bots_var, bumper_clients=bumper.bumper_clients_var) time.sleep(1.5) #Wait for broker startup # start mqtt_helperbot (async) mqtt_helperbot = bumper.MQTTHelperBot(mqtt_address, run_async=True, bumper_bots=bumper.bumper_bots_var, bumper_clients=bumper.bumper_clients_var) # start conf server on port 443 (async) - Used for most https calls conf_server = bumper.ConfServer(conf_address_443, usessl=True, run_async=True, bumper_bots=bumper.bumper_bots_var, bumper_clients=bumper.bumper_clients_var, helperbot=mqtt_helperbot) # start conf server on port 8007 (async) - Used for a load balancer request conf_server_2 = bumper.ConfServer(conf_address_8007, usessl=False, run_async=True, bumper_bots=bumper.bumper_bots_var, bumper_clients=bumper.bumper_clients_var, helperbot=mqtt_helperbot) # start xmpp server on port 5223 (sync) xmpp_server = bumper.XMPPServer(xmpp_address)
async def test_confserver_no_ssl(): conf_server = bumper.ConfServer(("127.0.0.1", 111111), usessl=False) conf_server.confserver_app() asyncio.create_task(conf_server.start_server())
def create_app(loop): confserver = bumper.ConfServer("127.0.0.1:11111", False) confserver.confserver_app() return confserver.app
def create_confserver(): return bumper.ConfServer("127.0.0.1:11111", False)
from nose.tools import * import mock import bumper import asyncio import os import json import tinydb from aiohttp.test_utils import TestClient, TestServer, loop_context from aiohttp import request confserver = bumper.ConfServer("127.0.0.1:11111", False, mock.MagicMock) confserver.confserver_app() app = confserver.app def async_return(result): f = asyncio.Future() f.set_result(result) return f def test_disconnect(): confserver.disconnect() def test_base(): if os.path.exists("tests/tmp.db"): os.remove("tests/tmp.db") # Remove existing db bumper.db = "tests/tmp.db" # Set db location for testing loop = asyncio.get_event_loop() client = TestClient(TestServer(app), loop=loop)
def main(): args = sys.argv if len(args) > 0: if "--debug" in args: logging.basicConfig( level=logging.DEBUG, format= "[%(asctime)s] :: %(levelname)s :: %(name)s :: %(module)s :: %(funcName)s :: %(lineno)d :: %(message)s", ) else: logging.basicConfig( level=logging.INFO, format= "[%(asctime)s] :: %(levelname)s :: %(name)s :: %(message)s", ) # format="[%(asctime)s] :: %(levelname)s :: %(name)s :: %(module)s :: %(funcName)s :: %(lineno)d :: %(message)s") if platform.system() == "Darwin": # If a Mac, use 0.0.0.0 for listening listen_host = "0.0.0.0" else: listen_host = socket.gethostbyname(socket.gethostname()) #listen_host = "localhost" # Try this if the above doesn't work conf_address_443 = (listen_host, 443) conf_address_8007 = (listen_host, 8007) xmpp_address = (listen_host, 5223) mqtt_address = (listen_host, 8883) xmpp_server = bumper.XMPPServer(xmpp_address) mqtt_server = bumper.MQTTServer(mqtt_address) mqtt_helperbot = bumper.MQTTHelperBot(mqtt_address) conf_server = bumper.ConfServer(conf_address_443, usessl=True, helperbot=mqtt_helperbot) conf_server_2 = bumper.ConfServer(conf_address_8007, usessl=False, helperbot=mqtt_helperbot) # add user # users = bumper.bumper_users_var.get() # user1 = bumper.BumperUser('user1') # user1.add_device('devid') # user1.add_bot('bot_did') # users.append(user1) # bumper.bumper_users_var.set(users) # start xmpp server on port 5223 (sync) xmpp_server.run(run_async=True) # Start in new thread # start mqtt server on port 8883 (async) mqtt_server.run(run_async=True) # Start in new thread time.sleep(1.5) # Wait for broker startup # start mqtt_helperbot (async) mqtt_helperbot.run(run_async=True) # Start in new thread # start conf server on port 443 (async) - Used for most https calls conf_server.run(run_async=True) # Start in new thread # start conf server on port 8007 (async) - Used for a load balancer request conf_server_2.run(run_async=True) # Start in new thread while True: try: time.sleep(30) bumper.revoke_expired_tokens() disconnected_clients = bumper.get_disconnected_xmpp_clients() for client in disconnected_clients: xmpp_server.remove_client_byuid(client["userid"]) except KeyboardInterrupt: bumper.bumperlog.info("Bumper Exiting - Keyboard Interrupt") print("Bumper Exiting") exit(0)