matrix-python-sdk/test/user_test.py

53 lines
1.6 KiB
Python

import pytest
import responses
from matrix_client.api import MATRIX_V2_API_PATH
from matrix_client.client import MatrixClient
from matrix_client.user import User
HOSTNAME = "http://localhost"
class TestUser:
cli = MatrixClient(HOSTNAME)
user_id = "@test:localhost"
room_id = "!test:localhost"
@pytest.fixture()
def user(self):
return User(self.cli.api, self.user_id)
@pytest.fixture()
def room(self):
return self.cli._mkroom(self.room_id)
@responses.activate
def test_get_display_name(self, user, room):
displayname_url = HOSTNAME + MATRIX_V2_API_PATH + \
"/profile/{}/displayname".format(user.user_id)
displayname = 'test'
room_displayname = 'room_test'
# No displayname
assert user.get_display_name(room) == user.user_id
responses.add(responses.GET, displayname_url, json={})
assert user.get_display_name() == user.user_id
assert len(responses.calls) == 1
# Get global displayname
responses.replace(responses.GET, displayname_url,
json={"displayname": displayname})
assert user.get_display_name() == displayname
assert len(responses.calls) == 2
# Global displayname already present
assert user.get_display_name() == displayname
# No new request
assert len(responses.calls) == 2
# Per-room displayname
room.members_displaynames[user.user_id] = room_displayname
assert user.get_display_name(room) == room_displayname
# No new request
assert len(responses.calls) == 2