craftbeerpi4-pione/tests/test_actor.py

95 lines
2.6 KiB
Python
Raw Normal View History

import aiohttp
2018-11-01 19:50:04 +01:00
from aiohttp.test_utils import AioHTTPTestCase, unittest_run_loop
2018-11-01 21:25:42 +01:00
from core.craftbeerpi import CraftBeerPi
2018-11-01 19:50:04 +01:00
2019-01-02 00:48:36 +01:00
class ActorTestCase(AioHTTPTestCase):
2018-11-01 19:50:04 +01:00
async def get_application(self):
self.cbpi = CraftBeerPi()
await self.cbpi.init_serivces()
2018-11-01 19:50:04 +01:00
return self.cbpi.app
@unittest_run_loop
2019-01-02 00:48:36 +01:00
async def test_actor_switch(self):
2018-11-01 19:50:04 +01:00
resp = await self.client.post(path="/login", data={"username": "cbpi", "password": "123"})
assert resp.status == 200
2018-11-16 20:35:59 +01:00
2019-01-02 21:20:44 +01:00
resp = await self.client.request("POST", "/actor/1/on")
2018-11-16 20:35:59 +01:00
assert resp.status == 204
i = await self.cbpi.actor.get_one(1)
2019-01-02 21:20:44 +01:00
print(i)
2018-11-16 20:35:59 +01:00
assert i.instance.state is True
2019-01-02 21:20:44 +01:00
resp = await self.client.request("POST", "/actor/1/off")
2018-11-16 20:35:59 +01:00
assert resp.status == 204
i = await self.cbpi.actor.get_one(1)
assert i.instance.state is False
2019-01-02 21:20:44 +01:00
resp = await self.client.request("POST", "/actor/1/toggle")
2018-11-16 20:35:59 +01:00
assert resp.status == 204
i = await self.cbpi.actor.get_one(1)
assert i.instance.state is True
2019-01-02 21:20:44 +01:00
resp = await self.client.request("POST", "/actor/1/toggle")
2018-11-16 20:35:59 +01:00
assert resp.status == 204
i = await self.cbpi.actor.get_one(1)
assert i.instance.state is False
2019-01-02 00:48:36 +01:00
@unittest_run_loop
async def test_crud(self):
data = {
"name": "CustomActor",
"type": "CustomActor",
"config": {
"interval": 5
}
}
# Add new sensor
resp = await self.client.post(path="/actor/", json=data)
assert resp.status == 200
m = await resp.json()
sensor_id = m["id"]
# Get sensor
resp = await self.client.get(path="/actor/%s" % sensor_id)
assert resp.status == 200
m2 = await resp.json()
sensor_id = m2["id"]
2018-11-01 19:50:04 +01:00
2019-01-02 00:48:36 +01:00
# Update Sensor
resp = await self.client.put(path="/actor/%s" % sensor_id, json=m)
assert resp.status == 200
2018-11-01 19:50:04 +01:00
2019-01-02 00:48:36 +01:00
# # Delete Sensor
resp = await self.client.delete(path="/actor/%s" % sensor_id)
assert resp.status == 204
2019-01-02 21:20:44 +01:00
@unittest_run_loop
async def test_crud_negative(self):
data = {
"name": "CustomActor",
"type": "CustomActor",
"config": {
"interval": 5
}
}
# Get actor which not exists
resp = await self.client.get(path="/actor/%s" % 9999)
assert resp.status == 500
# Update not existing actor
resp = await self.client.put(path="/actor/%s" % 9999, json=data)
assert resp.status == 500