53 lines
1.6 KiB
Python
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
|