mirror of
https://github.com/matrix-org/pantalaimon.git
synced 2025-02-23 16:19:48 -05:00
tests: Test pan client syncs.
This commit is contained in:
parent
773b708f14
commit
42e363fafc
222
tests/data/sync.json
Normal file
222
tests/data/sync.json
Normal file
@ -0,0 +1,222 @@
|
|||||||
|
{
|
||||||
|
"device_one_time_keys_count": {},
|
||||||
|
"next_batch": "s526_47314_0_7_1_1_1_11444_1",
|
||||||
|
"device_lists": {
|
||||||
|
"changed": [
|
||||||
|
"@example:example.org"
|
||||||
|
],
|
||||||
|
"left": []
|
||||||
|
},
|
||||||
|
|
||||||
|
"rooms": {
|
||||||
|
"invite": {},
|
||||||
|
"join": {
|
||||||
|
"!SVkFJHzfwvuaIEawgC:localhost": {
|
||||||
|
"account_data": {
|
||||||
|
"events": []
|
||||||
|
},
|
||||||
|
"ephemeral": {
|
||||||
|
"events": [
|
||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"$151680659217152dPKjd:localhost": {
|
||||||
|
"m.read": {
|
||||||
|
"@example:localhost": {
|
||||||
|
"ts": 1516809890615
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": "m.receipt"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"state": {
|
||||||
|
"events": [
|
||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"join_rule": "public"
|
||||||
|
},
|
||||||
|
"event_id": "$15139375514WsgmR:localhost",
|
||||||
|
"origin_server_ts": 1513937551539,
|
||||||
|
"sender": "@example:localhost",
|
||||||
|
"state_key": "",
|
||||||
|
"type": "m.room.join_rules",
|
||||||
|
"unsigned": {
|
||||||
|
"age": 7034220355
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"avatar_url": null,
|
||||||
|
"displayname": "example",
|
||||||
|
"membership": "join"
|
||||||
|
},
|
||||||
|
"event_id": "$151800140517rfvjc:localhost",
|
||||||
|
"membership": "join",
|
||||||
|
"origin_server_ts": 1518001405556,
|
||||||
|
"sender": "@example:localhost",
|
||||||
|
"state_key": "@example:localhost",
|
||||||
|
"type": "m.room.member",
|
||||||
|
"unsigned": {
|
||||||
|
"age": 2970366338,
|
||||||
|
"replaces_state": "$151800111315tsynI:localhost"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"history_visibility": "shared"
|
||||||
|
},
|
||||||
|
"event_id": "$15139375515VaJEY:localhost",
|
||||||
|
"origin_server_ts": 1513937551613,
|
||||||
|
"sender": "@example:localhost",
|
||||||
|
"state_key": "",
|
||||||
|
"type": "m.room.history_visibility",
|
||||||
|
"unsigned": {
|
||||||
|
"age": 7034220281
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"creator": "@example:localhost"
|
||||||
|
},
|
||||||
|
"event_id": "$15139375510KUZHi:localhost",
|
||||||
|
"origin_server_ts": 1513937551203,
|
||||||
|
"sender": "@example:localhost",
|
||||||
|
"state_key": "",
|
||||||
|
"type": "m.room.create",
|
||||||
|
"unsigned": {
|
||||||
|
"age": 7034220691
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"aliases": [
|
||||||
|
"#tutorial:localhost"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"event_id": "$15139375516NUgtD:localhost",
|
||||||
|
"origin_server_ts": 1513937551720,
|
||||||
|
"sender": "@example:localhost",
|
||||||
|
"state_key": "localhost",
|
||||||
|
"type": "m.room.aliases",
|
||||||
|
"unsigned": {
|
||||||
|
"age": 7034220174
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"topic": "\ud83d\ude00"
|
||||||
|
},
|
||||||
|
"event_id": "$151957878228ssqrJ:localhost",
|
||||||
|
"origin_server_ts": 1519578782185,
|
||||||
|
"sender": "@example:localhost",
|
||||||
|
"state_key": "",
|
||||||
|
"type": "m.room.topic",
|
||||||
|
"unsigned": {
|
||||||
|
"age": 1392989709,
|
||||||
|
"prev_content": {
|
||||||
|
"topic": "test"
|
||||||
|
},
|
||||||
|
"prev_sender": "@example:localhost",
|
||||||
|
"replaces_state": "$151957069225EVYKm:localhost"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"ban": 50,
|
||||||
|
"events": {
|
||||||
|
"m.room.avatar": 50,
|
||||||
|
"m.room.canonical_alias": 50,
|
||||||
|
"m.room.history_visibility": 100,
|
||||||
|
"m.room.name": 50,
|
||||||
|
"m.room.power_levels": 100
|
||||||
|
},
|
||||||
|
"events_default": 0,
|
||||||
|
"invite": 0,
|
||||||
|
"kick": 50,
|
||||||
|
"redact": 50,
|
||||||
|
"state_default": 50,
|
||||||
|
"users": {
|
||||||
|
"@example:localhost": 100
|
||||||
|
},
|
||||||
|
"users_default": 0
|
||||||
|
},
|
||||||
|
"event_id": "$15139375512JaHAW:localhost",
|
||||||
|
"origin_server_ts": 1513937551359,
|
||||||
|
"sender": "@example:localhost",
|
||||||
|
"state_key": "",
|
||||||
|
"type": "m.room.power_levels",
|
||||||
|
"unsigned": {
|
||||||
|
"age": 7034220535
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"alias": "#tutorial:localhost"
|
||||||
|
},
|
||||||
|
"event_id": "$15139375513VdeRF:localhost",
|
||||||
|
"origin_server_ts": 1513937551461,
|
||||||
|
"sender": "@example:localhost",
|
||||||
|
"state_key": "",
|
||||||
|
"type": "m.room.canonical_alias",
|
||||||
|
"unsigned": {
|
||||||
|
"age": 7034220433
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"avatar_url": null,
|
||||||
|
"displayname": "example2",
|
||||||
|
"membership": "join"
|
||||||
|
},
|
||||||
|
"event_id": "$152034824468gOeNB:localhost",
|
||||||
|
"membership": "join",
|
||||||
|
"origin_server_ts": 1520348244605,
|
||||||
|
"sender": "@example2:localhost",
|
||||||
|
"state_key": "@example2:localhost",
|
||||||
|
"type": "m.room.member",
|
||||||
|
"unsigned": {
|
||||||
|
"age": 623527289,
|
||||||
|
"prev_content": {
|
||||||
|
"membership": "leave"
|
||||||
|
},
|
||||||
|
"prev_sender": "@example:localhost",
|
||||||
|
"replaces_state": "$152034819067QWJxM:localhost"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"timeline": {
|
||||||
|
"events": [
|
||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"body": "baba",
|
||||||
|
"format": "org.matrix.custom.html",
|
||||||
|
"formatted_body": "<strong>baba</strong>",
|
||||||
|
"msgtype": "m.text"
|
||||||
|
},
|
||||||
|
"event_id": "$152037280074GZeOm:localhost",
|
||||||
|
"origin_server_ts": 1520372800469,
|
||||||
|
"sender": "@example:localhost",
|
||||||
|
"type": "m.room.message",
|
||||||
|
"unsigned": {
|
||||||
|
"age": 598971425
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"limited": true,
|
||||||
|
"prev_batch": "t392-516_47314_0_7_1_1_1_11444_1"
|
||||||
|
},
|
||||||
|
"unread_notifications": {
|
||||||
|
"highlight_count": 0,
|
||||||
|
"notification_count": 11
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"leave": {}
|
||||||
|
},
|
||||||
|
"to_device": {
|
||||||
|
"events": []
|
||||||
|
}
|
||||||
|
}
|
@ -1,10 +1,17 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
|
import re
|
||||||
|
import json
|
||||||
|
|
||||||
from aiohttp import web
|
from aiohttp import web
|
||||||
|
|
||||||
from conftest import faker
|
from conftest import faker
|
||||||
|
|
||||||
|
|
||||||
class TestClass(object):
|
class TestClass(object):
|
||||||
|
@staticmethod
|
||||||
|
def _load_response(filename):
|
||||||
|
with open(filename) as f:
|
||||||
|
return json.loads(f.read(), encoding="utf-8")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def login_response(self):
|
def login_response(self):
|
||||||
@ -15,6 +22,10 @@ class TestClass(object):
|
|||||||
"user_id": "@example:example.org"
|
"user_id": "@example:example.org"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@property
|
||||||
|
def sync_response(self):
|
||||||
|
return self._load_response("tests/data/sync.json")
|
||||||
|
|
||||||
async def test_daemon_start(self, pan_proxy_server, aiohttp_client, aioresponse):
|
async def test_daemon_start(self, pan_proxy_server, aiohttp_client, aioresponse):
|
||||||
server, daemon = pan_proxy_server
|
server, daemon = pan_proxy_server
|
||||||
|
|
||||||
@ -48,3 +59,38 @@ class TestClass(object):
|
|||||||
assert pan_client.logged_in
|
assert pan_client.logged_in
|
||||||
# Check if our pan client has a sync loop started
|
# Check if our pan client has a sync loop started
|
||||||
assert pan_client.task
|
assert pan_client.task
|
||||||
|
|
||||||
|
async def test_pan_client_sync(self, pan_proxy_server, aiohttp_client, aioresponse):
|
||||||
|
server, daemon = pan_proxy_server
|
||||||
|
|
||||||
|
client = await aiohttp_client(server)
|
||||||
|
|
||||||
|
aioresponse.post(
|
||||||
|
"https://example.org/_matrix/client/r0/login",
|
||||||
|
status=200,
|
||||||
|
payload=self.login_response,
|
||||||
|
repeat=True
|
||||||
|
)
|
||||||
|
|
||||||
|
sync_url = re.compile(
|
||||||
|
r'^https://example\.org/_matrix/client/r0/sync\?access_token=.*'
|
||||||
|
)
|
||||||
|
|
||||||
|
aioresponse.get(
|
||||||
|
sync_url,
|
||||||
|
status=200,
|
||||||
|
payload=self.sync_response,
|
||||||
|
)
|
||||||
|
|
||||||
|
await client.post(
|
||||||
|
"/_matrix/client/r0/login",
|
||||||
|
json={
|
||||||
|
"type": "m.login.password",
|
||||||
|
"user": "example",
|
||||||
|
"password": "wordpass",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
# Check that the pan client started to sync after logging in.
|
||||||
|
pan_client = list(daemon.pan_clients.values())[0]
|
||||||
|
assert len(pan_client.rooms) == 1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user