remove last star import
This commit is contained in:
parent
89f4b56859
commit
40c972e938
28 changed files with 346 additions and 357 deletions
|
|
@ -4,13 +4,13 @@ import pytest
|
|||
from amqtt.client import MQTTClient
|
||||
|
||||
import bumper
|
||||
from bumper import WebserverBinding
|
||||
from bumper import MQTTServer, WebserverBinding
|
||||
from tests import CONF_SERVER_PORT, HOST, MQTT_PORT
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
async def mqtt_server():
|
||||
mqtt_server = bumper.MQTTServer(HOST, MQTT_PORT, password_file="tests/passwd")
|
||||
mqtt_server = MQTTServer(HOST, MQTT_PORT, password_file="tests/passwd")
|
||||
await mqtt_server.start()
|
||||
bumper.mqtt_server = mqtt_server
|
||||
while not mqtt_server.state == "started":
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
import asyncio
|
||||
import datetime
|
||||
import json
|
||||
import os
|
||||
from unittest import mock
|
||||
|
|
@ -7,12 +6,13 @@ from unittest import mock
|
|||
import pytest
|
||||
|
||||
import bumper
|
||||
from bumper import WebserverBinding
|
||||
from bumper import ConfServer, MQTTHelperBot, WebserverBinding, XMPPServer, db
|
||||
from bumper.models import ERR_TOKEN_INVALID, RETURN_API_SUCCESS
|
||||
from tests import CONF_SERVER_PORT, HOST, MQTT_PORT
|
||||
|
||||
|
||||
def create_confserver():
|
||||
return bumper.ConfServer(WebserverBinding(HOST, CONF_SERVER_PORT, False))
|
||||
return ConfServer(WebserverBinding(HOST, CONF_SERVER_PORT, False))
|
||||
|
||||
|
||||
def async_return(result):
|
||||
|
|
@ -27,28 +27,27 @@ def remove_existing_db():
|
|||
|
||||
|
||||
async def test_confserver_ssl():
|
||||
conf_server = bumper.ConfServer(WebserverBinding(HOST, CONF_SERVER_PORT, True))
|
||||
conf_server = ConfServer(WebserverBinding(HOST, CONF_SERVER_PORT, True))
|
||||
await conf_server.start()
|
||||
|
||||
|
||||
async def test_confserver_no_ssl():
|
||||
conf_server = bumper.ConfServer(WebserverBinding(HOST, 11112, False))
|
||||
conf_server = ConfServer(WebserverBinding(HOST, 11112, False))
|
||||
await conf_server.start()
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("mqtt_server")
|
||||
async def test_base(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
# Start XMPP
|
||||
xmpp_address = (HOST, 5223)
|
||||
xmpp_server = bumper.XMPPServer(xmpp_address)
|
||||
xmpp_server = XMPPServer(xmpp_address)
|
||||
bumper.xmpp_server = xmpp_server
|
||||
await xmpp_server.start_async_server()
|
||||
|
||||
# Start Helperbot
|
||||
mqtt_helperbot = bumper.MQTTHelperBot(HOST, MQTT_PORT)
|
||||
mqtt_helperbot = MQTTHelperBot(HOST, MQTT_PORT)
|
||||
bumper.mqtt_helperbot = mqtt_helperbot
|
||||
await mqtt_helperbot.start()
|
||||
|
||||
|
|
@ -63,16 +62,15 @@ async def test_base(conf_server_client):
|
|||
@pytest.mark.usefixtures("mqtt_server")
|
||||
async def test_restartService(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
# Start XMPP
|
||||
xmpp_address = (HOST, 5223)
|
||||
xmpp_server = bumper.XMPPServer(xmpp_address)
|
||||
xmpp_server = XMPPServer(xmpp_address)
|
||||
bumper.xmpp_server = xmpp_server
|
||||
await xmpp_server.start_async_server()
|
||||
|
||||
# Start Helperbot
|
||||
mqtt_helperbot = bumper.MQTTHelperBot(HOST, MQTT_PORT)
|
||||
mqtt_helperbot = MQTTHelperBot(HOST, MQTT_PORT)
|
||||
bumper.mqtt_helperbot = mqtt_helperbot
|
||||
await mqtt_helperbot.start()
|
||||
|
||||
|
|
@ -102,7 +100,6 @@ async def test_RemoveClient(conf_server_client):
|
|||
|
||||
async def test_login(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
# Test without user
|
||||
resp = await conf_server_client.get(
|
||||
|
|
@ -111,13 +108,12 @@ async def test_login(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
assert "accessToken" in jsonresp["data"]
|
||||
assert "uid" in jsonresp["data"]
|
||||
assert "username" in jsonresp["data"]
|
||||
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
# Test global_e without user
|
||||
resp = await conf_server_client.get(
|
||||
|
|
@ -126,33 +122,33 @@ async def test_login(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
assert "accessToken" in jsonresp["data"]
|
||||
assert "uid" in jsonresp["data"]
|
||||
assert "username" in jsonresp["data"]
|
||||
|
||||
# Add a user to db and test with existing users
|
||||
bumper.user_add("testuser")
|
||||
db.user_add("testuser")
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/ios/1/0/0/user/login"
|
||||
)
|
||||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
assert "accessToken" in jsonresp["data"]
|
||||
assert "uid" in jsonresp["data"]
|
||||
assert "username" in jsonresp["data"]
|
||||
|
||||
# Add a bot to db that will be added to user
|
||||
bumper.bot_add("sn_123", "did_123", "dev_123", "res_123", "com_123")
|
||||
db.bot_add("sn_123", "did_123", "dev_123", "res_123", "com_123")
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/ios/1/0/0/user/login"
|
||||
)
|
||||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
assert "accessToken" in jsonresp["data"]
|
||||
assert "uid" in jsonresp["data"]
|
||||
assert "username" in jsonresp["data"]
|
||||
|
|
@ -165,7 +161,7 @@ async def test_login(conf_server_client):
|
|||
"name": "sn_1234",
|
||||
"resource": "res_1234",
|
||||
}
|
||||
bumper.bot_full_upsert(newbot)
|
||||
db.bot_full_upsert(newbot)
|
||||
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/ios/1/0/0/user/login"
|
||||
|
|
@ -173,7 +169,7 @@ async def test_login(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
assert "accessToken" in jsonresp["data"]
|
||||
assert "uid" in jsonresp["data"]
|
||||
assert "username" in jsonresp["data"]
|
||||
|
|
@ -181,12 +177,11 @@ async def test_login(conf_server_client):
|
|||
|
||||
async def test_logout(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
# Add a token to user and test
|
||||
bumper.user_add("testuser")
|
||||
bumper.user_add_device("testuser", "dev_1234")
|
||||
bumper.user_add_token("testuser", "token_1234")
|
||||
db.user_add("testuser")
|
||||
db.user_add_device("testuser", "dev_1234")
|
||||
db.user_add_token("testuser", "token_1234")
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/ios/1/0/0/user/logout?accessToken={}".format(
|
||||
"token_1234"
|
||||
|
|
@ -196,12 +191,11 @@ async def test_logout(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
|
||||
|
||||
async def test_checkLogin(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
# Test without token
|
||||
resp = await conf_server_client.get(
|
||||
|
|
@ -212,14 +206,14 @@ async def test_checkLogin(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
assert "accessToken" in jsonresp["data"]
|
||||
assert jsonresp["data"]["accessToken"] != "token_1234"
|
||||
assert "uid" in jsonresp["data"]
|
||||
assert "username" in jsonresp["data"]
|
||||
|
||||
# Add a user to db and test with existing users
|
||||
bumper.user_add("testuser")
|
||||
db.user_add("testuser")
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/ios/1/0/0/user/checkLogin?accessToken={}".format(
|
||||
None
|
||||
|
|
@ -228,14 +222,14 @@ async def test_checkLogin(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
assert "accessToken" in jsonresp["data"]
|
||||
assert jsonresp["data"]["accessToken"] != "token_1234"
|
||||
assert "uid" in jsonresp["data"]
|
||||
assert "username" in jsonresp["data"]
|
||||
|
||||
# Test again using global_e app
|
||||
bumper.user_add("testuser")
|
||||
db.user_add("testuser")
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/global_e/1/0/0/user/checkLogin?accessToken={}".format(
|
||||
None
|
||||
|
|
@ -244,19 +238,19 @@ async def test_checkLogin(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
assert "accessToken" in jsonresp["data"]
|
||||
assert jsonresp["data"]["accessToken"] != "token_1234"
|
||||
assert "uid" in jsonresp["data"]
|
||||
assert "username" in jsonresp["data"]
|
||||
|
||||
# Remove dev from tmpuser
|
||||
bumper.user_remove_device("tmpuser", "dev_1234")
|
||||
db.user_remove_device("tmpuser", "dev_1234")
|
||||
|
||||
# Add a token to user and test
|
||||
bumper.user_add("testuser")
|
||||
bumper.user_add_device("testuser", "dev_1234")
|
||||
bumper.user_add_token("testuser", "token_1234")
|
||||
db.user_add("testuser")
|
||||
db.user_add_device("testuser", "dev_1234")
|
||||
db.user_add_token("testuser", "token_1234")
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/ios/1/0/0/user/checkLogin?accessToken={}".format(
|
||||
"token_1234"
|
||||
|
|
@ -265,14 +259,14 @@ async def test_checkLogin(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
assert "accessToken" in jsonresp["data"]
|
||||
assert jsonresp["data"]["accessToken"] == "token_1234"
|
||||
assert "uid" in jsonresp["data"]
|
||||
assert "username" in jsonresp["data"]
|
||||
|
||||
# Test again using global_e app
|
||||
bumper.user_add("testuser")
|
||||
db.user_add("testuser")
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/global_e/1/0/0/user/checkLogin?accessToken={}".format(
|
||||
"token_1234"
|
||||
|
|
@ -281,7 +275,7 @@ async def test_checkLogin(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
assert "accessToken" in jsonresp["data"]
|
||||
assert jsonresp["data"]["accessToken"] == "token_1234"
|
||||
assert "uid" in jsonresp["data"]
|
||||
|
|
@ -290,7 +284,6 @@ async def test_checkLogin(conf_server_client):
|
|||
|
||||
async def test_getAuthCode(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
# Test without user or token
|
||||
resp = await conf_server_client.get(
|
||||
|
|
@ -301,7 +294,7 @@ async def test_getAuthCode(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.ERR_TOKEN_INVALID
|
||||
assert jsonresp["code"] == ERR_TOKEN_INVALID
|
||||
|
||||
# Test as global_e
|
||||
resp = await conf_server_client.get(
|
||||
|
|
@ -310,12 +303,12 @@ async def test_getAuthCode(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.ERR_TOKEN_INVALID
|
||||
assert jsonresp["code"] == ERR_TOKEN_INVALID
|
||||
|
||||
# Add a token to user and test
|
||||
bumper.user_add("testuser")
|
||||
bumper.user_add_device("testuser", "dev_1234")
|
||||
bumper.user_add_token("testuser", "token_1234")
|
||||
db.user_add("testuser")
|
||||
db.user_add_device("testuser", "dev_1234")
|
||||
db.user_add_token("testuser", "token_1234")
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/ios/1/0/0/user/getAuthCode?uid={}&accessToken={}".format(
|
||||
"testuser", "token_1234"
|
||||
|
|
@ -324,7 +317,7 @@ async def test_getAuthCode(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
assert "authCode" in jsonresp["data"]
|
||||
assert "ecovacsUid" in jsonresp["data"]
|
||||
|
||||
|
|
@ -337,14 +330,13 @@ async def test_getAuthCode(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
assert "authCode" in jsonresp["data"]
|
||||
assert "ecovacsUid" in jsonresp["data"]
|
||||
|
||||
|
||||
async def test_checkAgreement(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/ios/1/0/0/user/checkAgreement"
|
||||
|
|
@ -352,7 +344,7 @@ async def test_checkAgreement(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
|
||||
# Test as global_e
|
||||
resp = await conf_server_client.get(
|
||||
|
|
@ -361,12 +353,11 @@ async def test_checkAgreement(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
|
||||
|
||||
async def test_homePageAlert(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/ios/1/0/0/campaign/homePageAlert"
|
||||
|
|
@ -374,12 +365,11 @@ async def test_homePageAlert(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
|
||||
|
||||
async def test_checkVersion(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/ios/1/0/0/common/checkVersion"
|
||||
|
|
@ -387,12 +377,11 @@ async def test_checkVersion(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
|
||||
|
||||
async def test_checkAppVersion(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/global_e/1/0/0/common/checkAPPVersion"
|
||||
|
|
@ -400,24 +389,22 @@ async def test_checkAppVersion(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
|
||||
|
||||
async def test_uploadDeviceInfo(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/global_e/1/0/0/common/uploadDeviceInfo"
|
||||
)
|
||||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
|
||||
|
||||
async def test_getAdByPositionType(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/global_e/1/0/0/ad/getAdByPositionType"
|
||||
|
|
@ -425,12 +412,11 @@ async def test_getAdByPositionType(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
|
||||
|
||||
async def test_getBootScreen(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/global_e/1/0/0/ad/getBootScreen"
|
||||
|
|
@ -438,12 +424,11 @@ async def test_getBootScreen(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
|
||||
|
||||
async def test_hasUnreadMsg(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/global_e/1/0/0/message/hasUnreadMsg"
|
||||
|
|
@ -451,12 +436,11 @@ async def test_hasUnreadMsg(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
|
||||
|
||||
async def test_getMsgList(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/global_e/1/0/0/message/getMsgList"
|
||||
|
|
@ -464,12 +448,11 @@ async def test_getMsgList(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
|
||||
|
||||
async def test_getSystemReminder(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/global_e/1/0/0/common/getSystemReminder"
|
||||
|
|
@ -477,12 +460,11 @@ async def test_getSystemReminder(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
|
||||
|
||||
async def test_getCnWapShopConfig(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/global_e/1/0/0/shop/getCnWapShopConfig"
|
||||
|
|
@ -490,12 +472,11 @@ async def test_getCnWapShopConfig(conf_server_client):
|
|||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
|
||||
|
||||
async def test_neng_hasUnreadMessage(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
postbody = {
|
||||
"auth": {
|
||||
|
|
@ -518,13 +499,12 @@ async def test_neng_hasUnreadMessage(conf_server_client):
|
|||
|
||||
async def test_getProductIotMap(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
resp = await conf_server_client.post("/api/pim/product/getProductIotMap")
|
||||
assert resp.status == 200
|
||||
text = await resp.text()
|
||||
jsonresp = json.loads(text)
|
||||
assert jsonresp["code"] == bumper.RETURN_API_SUCCESS
|
||||
assert jsonresp["code"] == RETURN_API_SUCCESS
|
||||
|
||||
# Test getPimFile
|
||||
resp = await conf_server_client.get("/api/pim/file/get/123")
|
||||
|
|
@ -533,7 +513,6 @@ async def test_getProductIotMap(conf_server_client):
|
|||
|
||||
async def test_getUsersAPI(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
resp = await conf_server_client.get("/api/users/user.do")
|
||||
assert resp.status == 200
|
||||
|
|
@ -544,13 +523,12 @@ async def test_getUsersAPI(conf_server_client):
|
|||
|
||||
async def test_getUserAccountInfo(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
bumper.user_add("testuser")
|
||||
bumper.user_add_device("testuser", "dev_1234")
|
||||
bumper.user_add_token("testuser", "token_1234")
|
||||
bumper.user_add_authcode("testuser", "token_1234", "auth_1234")
|
||||
bumper.user_add_bot("testuser", "did_1234")
|
||||
bumper.bot_add("sn_1234", "did_1234", "class_1234", "res_1234", "com_1234")
|
||||
db.user_add("testuser")
|
||||
db.user_add_device("testuser", "dev_1234")
|
||||
db.user_add_token("testuser", "token_1234")
|
||||
db.user_add_authcode("testuser", "token_1234", "auth_1234")
|
||||
db.user_add_bot("testuser", "did_1234")
|
||||
db.bot_add("sn_1234", "did_1234", "class_1234", "res_1234", "com_1234")
|
||||
|
||||
resp = await conf_server_client.get(
|
||||
"/v1/private/us/en/dev_1234/global_e/1/0/0/user/getUserAccountInfo"
|
||||
|
|
@ -565,7 +543,6 @@ async def test_getUserAccountInfo(conf_server_client):
|
|||
|
||||
async def test_postUsersAPI(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
# Test FindBest
|
||||
postbody = {"todo": "FindBest", "service": "EcoMsgNew"}
|
||||
|
|
@ -584,12 +561,12 @@ async def test_postUsersAPI(conf_server_client):
|
|||
assert jsonresp["result"] == "ok"
|
||||
|
||||
# Test loginByItToken - Uses the authcode
|
||||
bumper.user_add("testuser")
|
||||
bumper.user_add_device("testuser", "dev_1234")
|
||||
bumper.user_add_token("testuser", "token_1234")
|
||||
bumper.user_add_authcode("testuser", "token_1234", "auth_1234")
|
||||
bumper.user_add_bot("testuser", "did_1234")
|
||||
bumper.bot_add("sn_1234", "did_1234", "class_1234", "res_1234", "com_1234")
|
||||
db.user_add("testuser")
|
||||
db.user_add_device("testuser", "dev_1234")
|
||||
db.user_add_token("testuser", "token_1234")
|
||||
db.user_add_authcode("testuser", "token_1234", "auth_1234")
|
||||
db.user_add_bot("testuser", "did_1234")
|
||||
db.bot_add("sn_1234", "did_1234", "class_1234", "res_1234", "com_1234")
|
||||
# Test
|
||||
postbody = {
|
||||
"country": "US",
|
||||
|
|
@ -715,7 +692,6 @@ async def test_postUsersAPI(conf_server_client):
|
|||
|
||||
async def test_appsvr_api(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
# Test GetGlobalDeviceList
|
||||
postbody = {
|
||||
|
|
@ -741,7 +717,7 @@ async def test_appsvr_api(conf_server_client):
|
|||
jsonresp = json.loads(text)
|
||||
assert jsonresp["ret"] == "ok"
|
||||
|
||||
bumper.bot_add("sn_1234", "did_1234", "ls1ok3", "res_1234", "eco-ng")
|
||||
db.bot_add("sn_1234", "did_1234", "ls1ok3", "res_1234", "eco-ng")
|
||||
|
||||
# Test again with bot added
|
||||
resp = await conf_server_client.post("/api/appsvr/app.do", json=postbody)
|
||||
|
|
@ -753,11 +729,10 @@ async def test_appsvr_api(conf_server_client):
|
|||
|
||||
async def test_lg_logs(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
bumper.bot_add("sn_1234", "did_1234", "ls1ok3", "res_1234", "eco-ng")
|
||||
bumper.bot_set_mqtt("did_1234", True)
|
||||
db.bot_add("sn_1234", "did_1234", "ls1ok3", "res_1234", "eco-ng")
|
||||
db.bot_set_mqtt("did_1234", True)
|
||||
confserver = create_confserver()
|
||||
bumper.mqtt_helperbot = bumper.mqttserver.MQTTHelperBot(HOST, MQTT_PORT)
|
||||
bumper.mqtt_helperbot = MQTTHelperBot(HOST, MQTT_PORT)
|
||||
|
||||
# Test return get status
|
||||
command_getstatus_resp = {
|
||||
|
|
@ -791,7 +766,6 @@ async def test_lg_logs(conf_server_client):
|
|||
|
||||
async def test_postLookup(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
|
||||
# Test FindBest
|
||||
postbody = {"todo": "FindBest", "service": "EcoMsgNew"}
|
||||
|
|
@ -812,9 +786,8 @@ async def test_postLookup(conf_server_client):
|
|||
|
||||
async def test_devmgr(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
confserver = create_confserver()
|
||||
bumper.mqtt_helperbot = bumper.mqttserver.MQTTHelperBot(HOST, MQTT_PORT)
|
||||
bumper.mqtt_helperbot = MQTTHelperBot(HOST, MQTT_PORT)
|
||||
|
||||
# Test PollSCResult
|
||||
postbody = {"td": "PollSCResult"}
|
||||
|
|
@ -834,8 +807,8 @@ async def test_devmgr(conf_server_client):
|
|||
assert test_resp["unRead"] == False
|
||||
|
||||
# Test BotCommand
|
||||
bumper.bot_add("sn_1234", "did_1234", "dev_1234", "res_1234", "eco-ng")
|
||||
bumper.bot_set_mqtt("did_1234", True)
|
||||
db.bot_add("sn_1234", "did_1234", "dev_1234", "res_1234", "eco-ng")
|
||||
db.bot_set_mqtt("did_1234", True)
|
||||
postbody = {"toId": "did_1234"}
|
||||
|
||||
# Test return get status
|
||||
|
|
@ -867,9 +840,8 @@ async def test_devmgr(conf_server_client):
|
|||
|
||||
async def test_dim_devmanager(conf_server_client):
|
||||
remove_existing_db()
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
confserver = create_confserver()
|
||||
bumper.mqtt_helperbot = bumper.mqttserver.MQTTHelperBot(HOST, MQTT_PORT)
|
||||
bumper.mqtt_helperbot = MQTTHelperBot(HOST, MQTT_PORT)
|
||||
|
||||
# Test PollSCResult
|
||||
postbody = {"td": "PollSCResult"}
|
||||
|
|
@ -889,8 +861,8 @@ async def test_dim_devmanager(conf_server_client):
|
|||
assert test_resp["unRead"] == False
|
||||
|
||||
# Test BotCommand
|
||||
bumper.bot_add("sn_1234", "did_1234", "dev_1234", "res_1234", "eco-ng")
|
||||
bumper.bot_set_mqtt("did_1234", True)
|
||||
db.bot_add("sn_1234", "did_1234", "dev_1234", "res_1234", "eco-ng")
|
||||
db.bot_set_mqtt("did_1234", True)
|
||||
postbody = {"toId": "did_1234"}
|
||||
|
||||
# Test return get status
|
||||
|
|
@ -921,7 +893,7 @@ async def test_dim_devmanager(conf_server_client):
|
|||
assert test_resp["errno"] == "timeout"
|
||||
|
||||
# Set bot not on mqtt
|
||||
bumper.bot_set_mqtt("did_1234", False)
|
||||
db.bot_set_mqtt("did_1234", False)
|
||||
bumper.mqtt_helperbot.send_command = mock.MagicMock(
|
||||
return_value=async_return(command_getstatus_resp)
|
||||
)
|
||||
|
|
|
|||
139
tests/test_db.py
139
tests/test_db.py
|
|
@ -1,77 +1,92 @@
|
|||
import os
|
||||
from datetime import datetime, timedelta
|
||||
from unittest import mock
|
||||
|
||||
from tinydb import TinyDB
|
||||
|
||||
import bumper
|
||||
from bumper import data_dir, db
|
||||
|
||||
|
||||
def test_db_path():
|
||||
bumper.db = None
|
||||
assert bumper.db_file() == os.path.join(bumper.data_dir, "bumper.db")
|
||||
env = os.environ.copy()
|
||||
env.pop("DB_FILE")
|
||||
with mock.patch.dict(os.environ, env, clear=True):
|
||||
assert db.db_file() == os.path.join(data_dir, "bumper.db")
|
||||
|
||||
|
||||
def test_user_db():
|
||||
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
bumper.user_add("testuser") # Add testuser
|
||||
db.user_add("testuser") # Add testuser
|
||||
|
||||
assert (
|
||||
bumper.user_get("testuser")["userid"] == "testuser"
|
||||
db.user_get("testuser")["userid"] == "testuser"
|
||||
) # Test that testuser was created and returned
|
||||
|
||||
bumper.user_add_device("testuser", "dev_1234") # Add device to testuser
|
||||
db.user_add_device("testuser", "dev_1234") # Add device to testuser
|
||||
|
||||
assert (
|
||||
bumper.user_by_deviceid("dev_1234")["userid"] == "testuser"
|
||||
db.user_by_deviceid("dev_1234")["userid"] == "testuser"
|
||||
) # Test that testuser was found by deviceid
|
||||
|
||||
bumper.user_remove_device("testuser", "dev_1234") # Remove device from testuser
|
||||
db.user_remove_device("testuser", "dev_1234") # Remove device from testuser
|
||||
|
||||
assert "dev_1234" not in bumper.user_get("testuser")["devices"]
|
||||
assert "dev_1234" not in db.user_get("testuser")["devices"]
|
||||
# Test that dev_1234 was not found in testuser devices
|
||||
|
||||
bumper.user_add_bot("testuser", "bot_1234") # Add bot did to testuser
|
||||
db.user_add_bot("testuser", "bot_1234") # Add bot did to testuser
|
||||
|
||||
assert "bot_1234" in bumper.user_get("testuser")["bots"]
|
||||
assert "bot_1234" in db.user_get("testuser")["bots"]
|
||||
# Test that bot was found in testuser's bot list
|
||||
|
||||
bumper.user_remove_bot("testuser", "bot_1234") # Remove bot did from testuser
|
||||
db.user_remove_bot("testuser", "bot_1234") # Remove bot did from testuser
|
||||
|
||||
assert "bot_1234" not in bumper.user_get("testuser")["bots"]
|
||||
assert "bot_1234" not in db.user_get("testuser")["bots"]
|
||||
# Test that bot was not found in testuser's bot list
|
||||
|
||||
bumper.user_add_token("testuser", "token_1234") # Add token to testuser
|
||||
db.user_add_token("testuser", "token_1234") # Add token to testuser
|
||||
|
||||
assert bumper.check_token("testuser", "token_1234")
|
||||
assert db.check_token("testuser", "token_1234")
|
||||
# Test that token was found for testuser
|
||||
|
||||
assert bumper.user_get_token("testuser", "token_1234")
|
||||
assert db.user_get_token("testuser", "token_1234")
|
||||
# Test that token was returned for testuser
|
||||
|
||||
bumper.user_add_authcode(
|
||||
db.user_add_authcode(
|
||||
"testuser", "token_1234", "auth_1234"
|
||||
) # Add authcode to token_1234 for testuser
|
||||
assert bumper.check_authcode("testuser", "auth_1234")
|
||||
assert db.check_authcode("testuser", "auth_1234")
|
||||
# Test that authcode was found for testuser
|
||||
|
||||
bumper.user_revoke_authcode(
|
||||
db.user_revoke_authcode(
|
||||
"testuser", "token_1234", "auth_1234"
|
||||
) # Remove authcode from testuser
|
||||
assert bumper.check_authcode("testuser", "auth_1234") == False
|
||||
assert db.check_authcode("testuser", "auth_1234") == False
|
||||
# Test that authcode was not found for testuser
|
||||
bumper.user_revoke_token("testuser", "token_1234") # Remove token from testuser
|
||||
db.user_revoke_token("testuser", "token_1234") # Remove token from testuser
|
||||
assert (
|
||||
bumper.check_token("testuser", "token_1234") == False
|
||||
db.check_token("testuser", "token_1234") == False
|
||||
) # Test that token was not found for testuser
|
||||
bumper.user_add_token("testuser", "token_1234") # Add token_1234
|
||||
bumper.user_add_token("testuser", "token_4321") # Add token_4321
|
||||
assert len(bumper.user_get_tokens("testuser")) == 2 # Test 2 tokens are available
|
||||
bumper.user_revoke_all_tokens("testuser") # Revoke all tokens
|
||||
assert len(bumper.user_get_tokens("testuser")) == 0 # Test 0 tokens are available
|
||||
db.user_add_token("testuser", "token_1234") # Add token_1234
|
||||
db.user_add_token("testuser", "token_4321") # Add token_4321
|
||||
assert len(db.user_get_tokens("testuser")) == 2 # Test 2 tokens are available
|
||||
db.user_revoke_all_tokens("testuser") # Revoke all tokens
|
||||
assert len(db.user_get_tokens("testuser")) == 0 # Test 0 tokens are available
|
||||
|
||||
db = TinyDB("tests/tmp.db")
|
||||
tokens = db.table("tokens")
|
||||
db_test = TinyDB("tests/tmp.db")
|
||||
tokens = db_test.table("tokens")
|
||||
tokens.insert(
|
||||
{
|
||||
"userid": "testuser",
|
||||
"token": "token_123456",
|
||||
"expiration": f"{datetime.now() + timedelta(seconds=-10)}",
|
||||
}
|
||||
) # Add expired token
|
||||
db_test.close()
|
||||
assert len(db.user_get_tokens("testuser")) == 1 # Test 1 tokens are available
|
||||
db.user_revoke_expired_tokens("testuser") # Revoke expired tokens
|
||||
assert len(db.user_get_tokens("testuser")) == 0 # Test 0 tokens are available
|
||||
|
||||
db_test = TinyDB("tests/tmp.db")
|
||||
tokens = db_test.table("tokens")
|
||||
tokens.insert(
|
||||
{
|
||||
"userid": "testuser",
|
||||
|
|
@ -79,67 +94,51 @@ def test_user_db():
|
|||
"expiration": f"{datetime.now() + timedelta(seconds=-10)}",
|
||||
}
|
||||
) # Add expired token
|
||||
db.close()
|
||||
assert len(bumper.user_get_tokens("testuser")) == 1 # Test 1 tokens are available
|
||||
bumper.user_revoke_expired_tokens("testuser") # Revoke expired tokens
|
||||
assert len(bumper.user_get_tokens("testuser")) == 0 # Test 0 tokens are available
|
||||
|
||||
db = TinyDB("tests/tmp.db")
|
||||
tokens = db.table("tokens")
|
||||
tokens.insert(
|
||||
{
|
||||
"userid": "testuser",
|
||||
"token": "token_1234",
|
||||
"expiration": f"{datetime.now() + timedelta(seconds=-10)}",
|
||||
}
|
||||
) # Add expired token
|
||||
db.close()
|
||||
assert len(bumper.user_get_tokens("testuser")) == 1 # Test 1 tokens are available
|
||||
bumper.revoke_expired_tokens() # Revoke expired tokens
|
||||
assert len(bumper.user_get_tokens("testuser")) == 0 # Test 0 tokens are available
|
||||
db_test.close()
|
||||
assert len(db.user_get_tokens("testuser")) == 1 # Test 1 tokens are available
|
||||
db.revoke_expired_tokens() # Revoke expired tokens
|
||||
assert len(db.user_get_tokens("testuser")) == 0 # Test 0 tokens are available
|
||||
|
||||
|
||||
def test_bot_db():
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
bumper.bot_add("sn_123", "did_123", "dev_123", "res_123", "co_123")
|
||||
assert bumper.bot_get("did_123") # Test that bot was added to db
|
||||
db.bot_add("sn_123", "did_123", "dev_123", "res_123", "co_123")
|
||||
assert db.bot_get("did_123") # Test that bot was added to db
|
||||
|
||||
bumper.bot_set_nick("did_123", "nick_123")
|
||||
db.bot_set_nick("did_123", "nick_123")
|
||||
assert (
|
||||
bumper.bot_get("did_123")["nick"] == "nick_123"
|
||||
db.bot_get("did_123")["nick"] == "nick_123"
|
||||
) # Test that nick was added to bot
|
||||
|
||||
bumper.bot_set_mqtt("did_123", True)
|
||||
assert bumper.bot_get("did_123")[
|
||||
db.bot_set_mqtt("did_123", True)
|
||||
assert db.bot_get("did_123")[
|
||||
"mqtt_connection"
|
||||
] # Test that mqtt was set True for bot
|
||||
|
||||
bumper.bot_set_xmpp("did_123", True)
|
||||
assert bumper.bot_get("did_123")[
|
||||
db.bot_set_xmpp("did_123", True)
|
||||
assert db.bot_get("did_123")[
|
||||
"xmpp_connection"
|
||||
] # Test that xmpp was set True for bot
|
||||
|
||||
bumper.bot_remove("did_123")
|
||||
assert bumper.bot_get("did_123") == None # Test that bot is no longer in db
|
||||
db.bot_remove("did_123")
|
||||
assert db.bot_get("did_123") == None # Test that bot is no longer in db
|
||||
|
||||
|
||||
def test_client_db():
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
bumper.client_add("user_123", "realm_123", "resource_123")
|
||||
assert bumper.client_get("resource_123") # Test client was added
|
||||
db.client_add("user_123", "realm_123", "resource_123")
|
||||
assert db.client_get("resource_123") # Test client was added
|
||||
|
||||
bumper.client_set_mqtt("resource_123", True)
|
||||
assert bumper.client_get("resource_123")[
|
||||
db.client_set_mqtt("resource_123", True)
|
||||
assert db.client_get("resource_123")[
|
||||
"mqtt_connection"
|
||||
] # Test that mqtt was set True for client
|
||||
|
||||
bumper.client_set_xmpp("resource_123", False)
|
||||
db.client_set_xmpp("resource_123", False)
|
||||
assert (
|
||||
bumper.client_get("resource_123")["xmpp_connection"] == False
|
||||
db.client_get("resource_123")["xmpp_connection"] == False
|
||||
) # Test that xmpp was set False for client
|
||||
assert (
|
||||
len(bumper.get_disconnected_xmpp_clients()) > 0
|
||||
len(db.get_disconnected_xmpp_clients()) > 0
|
||||
) # Test len of connected xmpp clients is 1
|
||||
|
||||
bumper.client_remove("resource_123")
|
||||
assert bumper.client_get("resource_123") == None
|
||||
db.client_remove("resource_123")
|
||||
assert db.client_get("resource_123") == None
|
||||
|
|
|
|||
|
|
@ -4,12 +4,13 @@ import os
|
|||
from testfixtures import LogCapture
|
||||
|
||||
import bumper
|
||||
from bumper import strtobool
|
||||
|
||||
|
||||
def test_strtobool():
|
||||
assert bumper.strtobool("t") == True
|
||||
assert bumper.strtobool("f") == False
|
||||
assert bumper.strtobool(0) == False
|
||||
assert strtobool("t") == True
|
||||
assert strtobool("f") == False
|
||||
assert strtobool(0) == False
|
||||
|
||||
|
||||
async def test_start_stop():
|
||||
|
|
@ -17,18 +18,16 @@ async def test_start_stop():
|
|||
if os.path.exists("tests/tmp.db"):
|
||||
os.remove("tests/tmp.db") # Remove existing db
|
||||
|
||||
b = bumper
|
||||
b.db = "tests/tmp.db" # Set db location for testing
|
||||
asyncio.create_task(b.start())
|
||||
asyncio.create_task(bumper.start())
|
||||
await asyncio.sleep(0.1)
|
||||
l.check_present(("bumper", "INFO", "Starting Bumper"))
|
||||
l.clear()
|
||||
|
||||
await b.shutdown()
|
||||
await bumper.shutdown()
|
||||
l.check_present(
|
||||
("bumper", "INFO", "Shutting down"), ("bumper", "INFO", "Shutdown complete")
|
||||
)
|
||||
assert b.shutting_down == True
|
||||
assert bumper.shutting_down == True
|
||||
|
||||
|
||||
async def test_start_stop_debug():
|
||||
|
|
@ -36,21 +35,19 @@ async def test_start_stop_debug():
|
|||
if os.path.exists("tests/tmp.db"):
|
||||
os.remove("tests/tmp.db") # Remove existing db
|
||||
|
||||
b = bumper
|
||||
b.db = "tests/tmp.db" # Set db location for testing
|
||||
b.bumper_listen = "0.0.0.0"
|
||||
b.bumper_debug = True
|
||||
asyncio.create_task(b.start())
|
||||
bumper.bumper_listen = "0.0.0.0"
|
||||
bumper.bumper_debug = True
|
||||
asyncio.create_task(bumper.start())
|
||||
|
||||
await asyncio.sleep(0.1)
|
||||
while b.mqtt_server.state == "starting":
|
||||
while bumper.mqtt_server.state == "starting":
|
||||
await asyncio.sleep(0.1)
|
||||
l.check_present(("bumper", "INFO", "Starting Bumper"))
|
||||
l.clear()
|
||||
|
||||
asyncio.create_task(b.shutdown())
|
||||
asyncio.create_task(bumper.shutdown())
|
||||
await asyncio.sleep(0.1)
|
||||
l.check_present(
|
||||
("bumper", "INFO", "Shutting down"), ("bumper", "INFO", "Shutdown complete")
|
||||
)
|
||||
assert b.shutting_down == True
|
||||
assert bumper.shutting_down == True
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
from bumper import OAuth
|
||||
from bumper.models import OAuth
|
||||
|
||||
|
||||
def test_oauth():
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ from amqtt.mqtt.constants import QOS_0
|
|||
from testfixtures import LogCapture
|
||||
|
||||
import bumper
|
||||
from bumper import MQTTHelperBot, MQTTServer, ca_cert, db
|
||||
from tests import HOST, MQTT_PORT
|
||||
|
||||
|
||||
|
|
@ -16,7 +17,7 @@ async def test_helperbot_message(mqtt_client: MQTTClient):
|
|||
with LogCapture() as l:
|
||||
|
||||
# Test broadcast message
|
||||
mqtt_helperbot = bumper.MQTTHelperBot(HOST, MQTT_PORT)
|
||||
mqtt_helperbot = MQTTHelperBot(HOST, MQTT_PORT)
|
||||
await mqtt_helperbot.start()
|
||||
assert mqtt_helperbot.is_connected
|
||||
msg_payload = "<ctl ts='1547822804960' td='DustCaseST' st='0'/>"
|
||||
|
|
@ -36,7 +37,7 @@ async def test_helperbot_message(mqtt_client: MQTTClient):
|
|||
await mqtt_helperbot.disconnect()
|
||||
|
||||
# Send command to bot
|
||||
mqtt_helperbot = bumper.MQTTHelperBot(HOST, MQTT_PORT)
|
||||
mqtt_helperbot = MQTTHelperBot(HOST, MQTT_PORT)
|
||||
await mqtt_helperbot.start()
|
||||
assert mqtt_helperbot.is_connected
|
||||
msg_payload = "{}"
|
||||
|
|
@ -56,7 +57,7 @@ async def test_helperbot_message(mqtt_client: MQTTClient):
|
|||
await mqtt_helperbot.disconnect()
|
||||
|
||||
# Received response to command
|
||||
mqtt_helperbot = bumper.MQTTHelperBot(HOST, MQTT_PORT)
|
||||
mqtt_helperbot = MQTTHelperBot(HOST, MQTT_PORT)
|
||||
await mqtt_helperbot.start()
|
||||
assert mqtt_helperbot.is_connected
|
||||
msg_payload = '{"ret":"ok","ver":"0.13.5"}'
|
||||
|
|
@ -76,7 +77,7 @@ async def test_helperbot_message(mqtt_client: MQTTClient):
|
|||
await mqtt_helperbot.disconnect()
|
||||
|
||||
# Received unknown message
|
||||
mqtt_helperbot = bumper.MQTTHelperBot(HOST, MQTT_PORT)
|
||||
mqtt_helperbot = MQTTHelperBot(HOST, MQTT_PORT)
|
||||
await mqtt_helperbot.start()
|
||||
assert mqtt_helperbot.is_connected
|
||||
msg_payload = "test"
|
||||
|
|
@ -96,7 +97,7 @@ async def test_helperbot_message(mqtt_client: MQTTClient):
|
|||
await mqtt_helperbot.disconnect()
|
||||
|
||||
# Received error message
|
||||
mqtt_helperbot = bumper.MQTTHelperBot(HOST, MQTT_PORT)
|
||||
mqtt_helperbot = MQTTHelperBot(HOST, MQTT_PORT)
|
||||
await mqtt_helperbot.start()
|
||||
assert mqtt_helperbot.is_connected
|
||||
msg_payload = "<ctl ts='1560904925396' td='errors' old='' new='110'/>"
|
||||
|
|
@ -120,7 +121,7 @@ async def test_helperbot_message(mqtt_client: MQTTClient):
|
|||
async def test_helperbot_expire_message(mqtt_client: MQTTClient):
|
||||
timeout = 0.1
|
||||
# Test broadcast message
|
||||
mqtt_helperbot = bumper.MQTTHelperBot(HOST, MQTT_PORT, timeout)
|
||||
mqtt_helperbot = MQTTHelperBot(HOST, MQTT_PORT, timeout)
|
||||
bumper.mqtt_helperbot = mqtt_helperbot
|
||||
await mqtt_helperbot.start()
|
||||
assert mqtt_helperbot.is_connected
|
||||
|
|
@ -156,7 +157,7 @@ async def test_helperbot_expire_message(mqtt_client: MQTTClient):
|
|||
@pytest.mark.usefixtures("mqtt_server")
|
||||
async def test_helperbot_sendcommand(mqtt_client: MQTTClient):
|
||||
timeout = 0.1
|
||||
mqtt_helperbot = bumper.MQTTHelperBot(HOST, MQTT_PORT, timeout)
|
||||
mqtt_helperbot = MQTTHelperBot(HOST, MQTT_PORT, timeout)
|
||||
bumper.mqtt_helperbot = mqtt_helperbot
|
||||
await mqtt_helperbot.start()
|
||||
assert mqtt_helperbot.is_connected
|
||||
|
|
@ -293,9 +294,7 @@ async def test_mqttserver():
|
|||
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
|
||||
|
||||
mqtt_server = bumper.MQTTServer(
|
||||
mqtt_server = MQTTServer(
|
||||
HOST, MQTT_PORT, password_file="tests/passwd", allow_anonymous=True
|
||||
)
|
||||
|
||||
|
|
@ -303,14 +302,14 @@ async def test_mqttserver():
|
|||
|
||||
try:
|
||||
# Test helperbot connect
|
||||
mqtt_helperbot = bumper.MQTTHelperBot(HOST, MQTT_PORT)
|
||||
mqtt_helperbot = MQTTHelperBot(HOST, MQTT_PORT)
|
||||
await mqtt_helperbot.start()
|
||||
assert mqtt_helperbot.is_connected
|
||||
await mqtt_helperbot.disconnect()
|
||||
|
||||
# Test client connect
|
||||
bumper.user_add("user_123") # Add user to db
|
||||
bumper.client_add("user_123", "ecouser.net", "resource_123") # Add client to db
|
||||
db.user_add("user_123") # Add user to db
|
||||
db.client_add("user_123", "ecouser.net", "resource_123") # Add client to db
|
||||
|
||||
client = MQTTClient(
|
||||
client_id="user_123@ecouser.net/resource_123",
|
||||
|
|
@ -319,7 +318,7 @@ async def test_mqttserver():
|
|||
|
||||
await client.connect(
|
||||
f"mqtts://{HOST}:{MQTT_PORT}/",
|
||||
cafile=bumper.ca_cert,
|
||||
cafile=ca_cert,
|
||||
)
|
||||
assert client._connected_state._value == True # Check client is connected
|
||||
await client.disconnect()
|
||||
|
|
@ -332,7 +331,7 @@ async def test_mqttserver():
|
|||
|
||||
await client.connect(
|
||||
f"mqtts://{HOST}:{MQTT_PORT}/",
|
||||
cafile=bumper.ca_cert,
|
||||
cafile=ca_cert,
|
||||
)
|
||||
assert client._connected_state._value == True # Check fake_bot is connected
|
||||
await client.disconnect()
|
||||
|
|
@ -350,7 +349,7 @@ async def test_mqttserver():
|
|||
# good user/pass
|
||||
await client.connect(
|
||||
f"mqtts://test-client:abc123!@{HOST}:{MQTT_PORT}/",
|
||||
cafile=bumper.ca_cert,
|
||||
cafile=ca_cert,
|
||||
cleansession=True,
|
||||
)
|
||||
|
||||
|
|
@ -363,7 +362,7 @@ async def test_mqttserver():
|
|||
|
||||
await client.connect(
|
||||
f"mqtts://test-client:notvalid!@{HOST}:{MQTT_PORT}/",
|
||||
cafile=bumper.ca_cert,
|
||||
cafile=ca_cert,
|
||||
cleansession=True,
|
||||
)
|
||||
|
||||
|
|
@ -380,7 +379,7 @@ async def test_mqttserver():
|
|||
# no username in file
|
||||
await client.connect(
|
||||
f"mqtts://test-client-noexist:notvalid!@{HOST}:{MQTT_PORT}/",
|
||||
cafile=bumper.ca_cert,
|
||||
cafile=ca_cert,
|
||||
cleansession=True,
|
||||
)
|
||||
|
||||
|
|
@ -399,9 +398,7 @@ async def test_mqttserver():
|
|||
async def test_nofileauth_mqttserver():
|
||||
with LogCapture() as l:
|
||||
|
||||
mqtt_server = bumper.MQTTServer(
|
||||
HOST, MQTT_PORT, password_file="tests/passwd-notfound"
|
||||
)
|
||||
mqtt_server = MQTTServer(HOST, MQTT_PORT, password_file="tests/passwd-notfound")
|
||||
await mqtt_server.start()
|
||||
await mqtt_server.shutdown()
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@ from unittest import mock
|
|||
from testfixtures import LogCapture
|
||||
|
||||
import bumper
|
||||
from bumper import XMPPServer
|
||||
from bumper.xmppserver import XMPPAsyncClient
|
||||
|
||||
|
||||
def return_send_data(data):
|
||||
|
|
@ -16,7 +18,7 @@ def mock_transport_extra_info():
|
|||
|
||||
async def test_xmpp_server():
|
||||
xmpp_address = ("127.0.0.1", 5223)
|
||||
xmpp_server = bumper.XMPPServer(xmpp_address)
|
||||
xmpp_server = XMPPServer(xmpp_address)
|
||||
await xmpp_server.start_async_server()
|
||||
|
||||
with LogCapture("xmppserver") as l:
|
||||
|
|
@ -55,7 +57,7 @@ async def test_client_connect_no_starttls():
|
|||
test_transport = mock.Mock()
|
||||
test_transport.get_extra_info = mock.Mock(return_value=mock_transport_extra_info())
|
||||
test_transport.write = mock.Mock(return_value=return_send_data)
|
||||
xmppclient = bumper.xmppserver.XMPPAsyncClient(test_transport)
|
||||
xmppclient = XMPPAsyncClient(test_transport)
|
||||
xmppclient.state = xmppclient.CONNECT # Set client state to CONNECT
|
||||
mock_send = xmppclient.send = mock.Mock(side_effect=return_send_data)
|
||||
|
||||
|
|
@ -94,7 +96,7 @@ async def test_client_end_stream():
|
|||
test_transport = mock.Mock()
|
||||
test_transport.get_extra_info = mock.Mock(return_value=mock_transport_extra_info())
|
||||
test_transport.write = mock.Mock(return_value=return_send_data)
|
||||
xmppclient = bumper.xmppserver.XMPPAsyncClient(test_transport)
|
||||
xmppclient = XMPPAsyncClient(test_transport)
|
||||
xmppclient.state = xmppclient.CONNECT # Set client state to CONNECT
|
||||
mock_send = xmppclient.send = mock.Mock(side_effect=return_send_data)
|
||||
|
||||
|
|
@ -126,7 +128,7 @@ async def test_client_connect_starttls_called():
|
|||
test_transport = mock.Mock()
|
||||
test_transport.get_extra_info = mock.Mock(return_value=mock_transport_extra_info())
|
||||
test_transport.write = mock.Mock(return_value=return_send_data)
|
||||
xmppclient = bumper.xmppserver.XMPPAsyncClient(test_transport)
|
||||
xmppclient = XMPPAsyncClient(test_transport)
|
||||
xmppclient.state = xmppclient.CONNECT # Set client state to CONNECT
|
||||
mock_send = xmppclient.send = mock.Mock(side_effect=return_send_data)
|
||||
|
||||
|
|
@ -195,7 +197,7 @@ async def test_client_init():
|
|||
test_transport = mock.Mock()
|
||||
test_transport.get_extra_info = mock.Mock(return_value=mock_transport_extra_info())
|
||||
test_transport.write = mock.Mock(return_value=return_send_data)
|
||||
xmppclient = bumper.xmppserver.XMPPAsyncClient(test_transport)
|
||||
xmppclient = XMPPAsyncClient(test_transport)
|
||||
xmppclient.state = xmppclient.INIT # Set client state to INIT
|
||||
xmppclient.uid = "fuid_tmpuser"
|
||||
xmppclient.resource = "IOSF53D07BA"
|
||||
|
|
@ -263,7 +265,7 @@ async def test_bot_connect():
|
|||
test_transport = mock.Mock()
|
||||
test_transport.get_extra_info = mock.Mock(return_value=mock_transport_extra_info())
|
||||
test_transport.write = mock.Mock(return_value=return_send_data)
|
||||
xmppclient = bumper.xmppserver.XMPPAsyncClient(test_transport)
|
||||
xmppclient = XMPPAsyncClient(test_transport)
|
||||
xmppclient.state = xmppclient.CONNECT # Set client state to CONNECT
|
||||
mock_send = xmppclient.send = mock.Mock(side_effect=return_send_data)
|
||||
|
||||
|
|
@ -303,7 +305,7 @@ async def test_bot_init():
|
|||
test_transport = mock.Mock()
|
||||
test_transport.get_extra_info = mock.Mock(return_value=mock_transport_extra_info())
|
||||
test_transport.write = mock.Mock(return_value=return_send_data)
|
||||
xmppclient = bumper.xmppserver.XMPPAsyncClient(test_transport)
|
||||
xmppclient = XMPPAsyncClient(test_transport)
|
||||
xmppclient.state = xmppclient.INIT # Set client state to INIT
|
||||
xmppclient.uid = "E0000000000000001234"
|
||||
xmppclient.devclass = "159"
|
||||
|
|
@ -369,7 +371,7 @@ async def test_ping_server():
|
|||
test_transport = mock.Mock()
|
||||
test_transport.get_extra_info = mock.Mock(return_value=mock_transport_extra_info())
|
||||
test_transport.write = mock.Mock(return_value=return_send_data)
|
||||
xmppclient = bumper.xmppserver.XMPPAsyncClient(test_transport)
|
||||
xmppclient = XMPPAsyncClient(test_transport)
|
||||
xmppclient.state = xmppclient.READY # Set client state to READY
|
||||
xmppclient.uid = "E0000000000000001234"
|
||||
xmppclient.devclass = "159"
|
||||
|
|
@ -389,14 +391,14 @@ async def test_ping_client_to_client():
|
|||
test_transport = mock.Mock()
|
||||
test_transport.get_extra_info = mock.Mock(return_value=mock_transport_extra_info())
|
||||
test_transport.write = mock.Mock(return_value=return_send_data)
|
||||
xmppclient = bumper.xmppserver.XMPPAsyncClient(test_transport)
|
||||
xmppclient = XMPPAsyncClient(test_transport)
|
||||
xmppclient.state = xmppclient.READY # Set client state to READY
|
||||
xmppclient.uid = "E0000000000000001234"
|
||||
xmppclient.devclass = "159"
|
||||
xmppclient.bumper_jid = "E0000000000000001234@159.ecorobot.net/atom"
|
||||
mock_send = xmppclient.send = mock.Mock(side_effect=return_send_data)
|
||||
|
||||
xmppclient2 = bumper.xmppserver.XMPPAsyncClient(test_transport)
|
||||
xmppclient2 = XMPPAsyncClient(test_transport)
|
||||
xmppclient2.state = xmppclient.READY # Set client state to READY
|
||||
xmppclient2.uid = "fuid_tmpuser"
|
||||
xmppclient2.resource = "IOSF53D07BA"
|
||||
|
|
@ -429,7 +431,7 @@ async def test_client_send_iq():
|
|||
test_transport = mock.Mock()
|
||||
test_transport.get_extra_info = mock.Mock(return_value=mock_transport_extra_info())
|
||||
test_transport.write = mock.Mock(return_value=return_send_data)
|
||||
xmppclient = bumper.xmppserver.XMPPAsyncClient(test_transport)
|
||||
xmppclient = XMPPAsyncClient(test_transport)
|
||||
xmppclient.state = xmppclient.READY # Set client state to READY
|
||||
xmppclient.uid = "fuid_tmpuser"
|
||||
xmppclient.resource = "IOSF53D07BA"
|
||||
|
|
@ -438,7 +440,7 @@ async def test_client_send_iq():
|
|||
mock_send = xmppclient.send = mock.Mock(side_effect=return_send_data)
|
||||
bumper.xmppserver.XMPPServer.clients.append(xmppclient)
|
||||
|
||||
xmppclient2 = bumper.xmppserver.XMPPAsyncClient(test_transport)
|
||||
xmppclient2 = XMPPAsyncClient(test_transport)
|
||||
xmppclient2.state = xmppclient.READY # Set client state to READY
|
||||
xmppclient2.uid = "E0000000000000001234"
|
||||
xmppclient2.devclass = "159"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue