Add tests for setting voice region pos
This commit is contained in:
@@ -4,6 +4,7 @@ import asyncio
|
||||
import unittest
|
||||
from unittest import mock
|
||||
|
||||
from hippolyzer.lib.base.datatypes import Vector3
|
||||
from hippolyzer.lib.voice.client import VoiceClient
|
||||
from hippolyzer.lib.voice.connection import VivoxConnection
|
||||
|
||||
@@ -160,6 +161,7 @@ class TestVoiceClient(unittest.IsolatedAsyncioTestCase):
|
||||
"ReturnCode": 0,
|
||||
"Results": {}
|
||||
})
|
||||
return msg
|
||||
|
||||
async def _serve_connector_setup(self):
|
||||
await self.server_connection.send_event(
|
||||
@@ -207,42 +209,32 @@ class TestVoiceClient(unittest.IsolatedAsyncioTestCase):
|
||||
})
|
||||
await self.client.ready.wait()
|
||||
|
||||
async def _serve_login(self):
|
||||
msg = await self._expect_message("Account.Login.1")
|
||||
self.assertEqual("foo", msg.data["AccountName"])
|
||||
await self.server_connection.send_event("AccountLoginStateChangeEvent", {
|
||||
"AccountHandle": 2,
|
||||
"StatusCode": 200,
|
||||
"StatusString": "OK",
|
||||
"State": 1,
|
||||
})
|
||||
await self.server_connection.send_response(msg.request_id, msg.name, {
|
||||
"ReturnCode": 0,
|
||||
"Results": {
|
||||
"StatusCode": 0,
|
||||
"StatusString": None,
|
||||
async def _do_login(self):
|
||||
async def _serve_login():
|
||||
msg = await self._expect_message("Account.Login.1")
|
||||
self.assertEqual("foo", msg.data["AccountName"])
|
||||
await self.server_connection.send_event("AccountLoginStateChangeEvent", {
|
||||
"AccountHandle": 2,
|
||||
"DisplayName": "foo",
|
||||
}
|
||||
})
|
||||
"StatusCode": 200,
|
||||
"StatusString": "OK",
|
||||
"State": 1,
|
||||
})
|
||||
await self.server_connection.send_response(msg.request_id, msg.name, {
|
||||
"ReturnCode": 0,
|
||||
"Results": {
|
||||
"StatusCode": 0,
|
||||
"StatusString": None,
|
||||
"AccountHandle": 2,
|
||||
"DisplayName": "foo",
|
||||
}
|
||||
})
|
||||
|
||||
async def test_create_connector(self):
|
||||
await self._serve_connector_setup()
|
||||
|
||||
async def test_login(self):
|
||||
await self._serve_connector_setup()
|
||||
login_task = asyncio.create_task(self._serve_login())
|
||||
|
||||
await asyncio.wait_for(self.client.login("foo", "bar"), 0.5)
|
||||
await asyncio.wait_for(login_task, 0.5)
|
||||
|
||||
async def test_create_session(self):
|
||||
await self._serve_connector_setup()
|
||||
login_task = asyncio.create_task(self._serve_login())
|
||||
login_task = asyncio.create_task(_serve_login())
|
||||
|
||||
await asyncio.wait_for(self.client.login("foo", "bar"), 0.5)
|
||||
await asyncio.wait_for(login_task, 0.5)
|
||||
|
||||
async def _join_session(self):
|
||||
async def _serve_session():
|
||||
await self._handle_message("Session.Create.1")
|
||||
await self.server_connection.send_event("SessionAddedEvent", {
|
||||
@@ -255,7 +247,38 @@ class TestVoiceClient(unittest.IsolatedAsyncioTestCase):
|
||||
|
||||
serve_session_task = asyncio.create_task(_serve_session())
|
||||
|
||||
await self.client.join_session("uri:foo@bar", region_handle=0)
|
||||
await self.client.join_session("uri:foo@bar", region_handle=256)
|
||||
self.assertIn("uri:baz@foo", self.client.participants)
|
||||
|
||||
await serve_session_task
|
||||
|
||||
async def test_create_connector(self):
|
||||
await self._serve_connector_setup()
|
||||
|
||||
async def test_login(self):
|
||||
await self._serve_connector_setup()
|
||||
await self._do_login()
|
||||
|
||||
async def test_create_session(self):
|
||||
await self._serve_connector_setup()
|
||||
await self._do_login()
|
||||
await self._join_session()
|
||||
|
||||
async def test_set_position(self):
|
||||
await self._serve_connector_setup()
|
||||
await self._do_login()
|
||||
await self._join_session()
|
||||
handle_3d_pos_task = asyncio.create_task(self._handle_message("Session.Set3DPosition.1"))
|
||||
await self.client.set_region_3d_position(Vector3(1, 2, 3))
|
||||
msg = await handle_3d_pos_task
|
||||
self.assertDictEqual(
|
||||
{'X': '1.0', 'Y': '3.0', 'Z': '-258.0'},
|
||||
msg.data["SpeakerPosition"]["Position"],
|
||||
)
|
||||
self.assertAlmostEqual(self.client.region_pos.X, 1.0)
|
||||
self.assertAlmostEqual(self.client.region_pos.Y, 2.0)
|
||||
self.assertAlmostEqual(self.client.region_pos.Z, 3.0)
|
||||
|
||||
self.assertAlmostEqual(self.client.global_pos.X, 1.0)
|
||||
self.assertAlmostEqual(self.client.global_pos.Y, 3.0)
|
||||
self.assertAlmostEqual(self.client.global_pos.Z, -258.0)
|
||||
|
||||
Reference in New Issue
Block a user