Skip to content

Commit 2dbccd6

Browse files
committed
Fix a bug in get
1 parent 11f9cfc commit 2dbccd6

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

matrix.py

+7-4
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def __init__(self, config, opsdroid=None):
1818
self.room = config.get("default_room", "main")
1919
self._event_type = "opsdroid.database"
2020
self._single_state_key = config.get("single_state_key", True)
21-
_LOGGER.debug("Loaded matrix database connector")
21+
_LOGGER.debug("Loaded matrix database connector.")
2222

2323
async def connect(self):
2424
"""Connect to the database."""
@@ -66,12 +66,14 @@ async def get(self, key):
6666
room = self.room or "main"
6767
room_id = room if room.startswith("!") else self.connector.room_ids[room]
6868

69-
_LOGGER.debug(f"Getting {key} from matrix room {room_id}")
69+
state_key = "" if self._single_state_key is True else self._single_state_key or key
70+
71+
_LOGGER.debug(f"Getting {key} from matrix room {room_id} with state_key={state_key}.")
7072

7173
try:
72-
data = await self.get_state_event(room_id, key)
74+
data = await self.get_state_event(room_id, state_key)
7375
except MatrixRequestError as e:
74-
_LOGGER.info(f"Failed to get state event with state_key={key}: {e}")
76+
_LOGGER.info(f"Failed to get state event with state_key={state_key}: {e}")
7577
data = None
7678

7779
if not data:
@@ -92,6 +94,7 @@ async def get_state_event(self, room_id, key):
9294
if key:
9395
url += f"/{key}"
9496
try:
97+
_LOGGER.debug(f"Making request to {url}.")
9598
return await self.connector.connection._send("GET", quote(url))
9699
except MatrixRequestError as e:
97100
if e.code != 404:

test_database.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -241,13 +241,15 @@ async def test_default_update_single_state_key(patched_send, opsdroid_matrix):
241241

242242

243243
@pytest.mark.asyncio
244-
async def test_get(patched_send, opsdroid_matrix):
244+
async def test_get_single_state_key(patched_send, opsdroid_matrix):
245245
patched_send.return_value = {"twim": {"hello": "world"}}
246246

247247
db = DatabaseMatrix({"single_state_key": True}, opsdroid=opsdroid_matrix)
248248

249249
data = await db.get("twim")
250250

251+
patched_send.assert_called_once_with("GET", "/rooms/%21notaroomid/state/opsdroid.database")
252+
251253
assert data == {"hello": "world"}
252254

253255

@@ -259,6 +261,8 @@ async def test_get(patched_send, opsdroid_matrix):
259261

260262
data = await db.get("twim")
261263

264+
patched_send.assert_called_once_with("GET", "/rooms/%21notaroomid/state/opsdroid.database/twim")
265+
262266
assert data == {"hello": "world"}
263267

264268

0 commit comments

Comments
 (0)