File size: 1,636 Bytes
bbadb3d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | 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
|