1
1
# -*- coding: utf-8 -*-
2
2
# Copyright 2014-2016 OpenMarket Ltd
3
+ # Copyright 2019 The Matrix.org Foundation C.I.C.
3
4
#
4
5
# Licensed under the Apache License, Version 2.0 (the "License");
5
6
# you may not use this file except in compliance with the License.
16
17
17
18
from mock import Mock
18
19
19
- from twisted .internet import defer
20
-
21
20
from synapse .api .constants import EventTypes , Membership
22
21
from synapse .api .room_versions import RoomVersions
23
22
from synapse .types import RoomID , UserID
24
23
25
24
from tests import unittest
26
- from tests .utils import create_room , setup_test_homeserver
25
+ from tests .utils import create_room
27
26
28
27
29
- class RedactionTestCase (unittest .TestCase ):
30
- @defer .inlineCallbacks
31
- def setUp (self ):
32
- hs = yield setup_test_homeserver (
33
- self .addCleanup , resource_for_federation = Mock (), http_client = None
28
+ class RedactionTestCase (unittest .HomeserverTestCase ):
29
+ def make_homeserver (self , reactor , clock ):
30
+ return self .setup_test_homeserver (
31
+ resource_for_federation = Mock (), http_client = None
34
32
)
35
33
34
+ def prepare (self , reactor , clock , hs ):
36
35
self .store = hs .get_datastore ()
37
36
self .event_builder_factory = hs .get_event_builder_factory ()
38
37
self .event_creation_handler = hs .get_event_creation_handler ()
@@ -42,11 +41,12 @@ def setUp(self):
42
41
43
42
self .room1 = RoomID .from_string ("!abc123:test" )
44
43
45
- yield create_room (hs , self .room1 .to_string (), self .u_alice .to_string ())
44
+ self .get_success (
45
+ create_room (hs , self .room1 .to_string (), self .u_alice .to_string ())
46
+ )
46
47
47
48
self .depth = 1
48
49
49
- @defer .inlineCallbacks
50
50
def inject_room_member (
51
51
self , room , user , membership , replaces_state = None , extra_content = {}
52
52
):
@@ -63,15 +63,14 @@ def inject_room_member(
63
63
},
64
64
)
65
65
66
- event , context = yield self .event_creation_handler . create_new_client_event (
67
- builder
66
+ event , context = self .get_success (
67
+ self . event_creation_handler . create_new_client_event ( builder )
68
68
)
69
69
70
- yield self .store .persist_event (event , context )
70
+ self .get_success ( self . store .persist_event (event , context ) )
71
71
72
72
return event
73
73
74
- @defer .inlineCallbacks
75
74
def inject_message (self , room , user , body ):
76
75
self .depth += 1
77
76
@@ -86,15 +85,14 @@ def inject_message(self, room, user, body):
86
85
},
87
86
)
88
87
89
- event , context = yield self .event_creation_handler . create_new_client_event (
90
- builder
88
+ event , context = self .get_success (
89
+ self . event_creation_handler . create_new_client_event ( builder )
91
90
)
92
91
93
- yield self .store .persist_event (event , context )
92
+ self .get_success ( self . store .persist_event (event , context ) )
94
93
95
94
return event
96
95
97
- @defer .inlineCallbacks
98
96
def inject_redaction (self , room , event_id , user , reason ):
99
97
builder = self .event_builder_factory .for_room_version (
100
98
RoomVersions .V1 ,
@@ -108,20 +106,21 @@ def inject_redaction(self, room, event_id, user, reason):
108
106
},
109
107
)
110
108
111
- event , context = yield self .event_creation_handler . create_new_client_event (
112
- builder
109
+ event , context = self .get_success (
110
+ self . event_creation_handler . create_new_client_event ( builder )
113
111
)
114
112
115
- yield self .store .persist_event (event , context )
113
+ self .get_success ( self . store .persist_event (event , context ) )
116
114
117
- @defer .inlineCallbacks
118
115
def test_redact (self ):
119
- yield self .inject_room_member (self .room1 , self .u_alice , Membership .JOIN )
116
+ self .get_success (
117
+ self .inject_room_member (self .room1 , self .u_alice , Membership .JOIN )
118
+ )
120
119
121
- msg_event = yield self .inject_message (self .room1 , self .u_alice , "t" )
120
+ msg_event = self .get_success ( self . inject_message (self .room1 , self .u_alice , "t" ) )
122
121
123
122
# Check event has not been redacted:
124
- event = yield self .store .get_event (msg_event .event_id )
123
+ event = self .get_success ( self . store .get_event (msg_event .event_id ) )
125
124
126
125
self .assertObjectHasAttributes (
127
126
{
@@ -136,11 +135,11 @@ def test_redact(self):
136
135
137
136
# Redact event
138
137
reason = "Because I said so"
139
- yield self .inject_redaction (
140
- self .room1 , msg_event .event_id , self .u_alice , reason
138
+ self .get_success (
139
+ self .inject_redaction ( self . room1 , msg_event .event_id , self .u_alice , reason )
141
140
)
142
141
143
- event = yield self .store .get_event (msg_event .event_id )
142
+ event = self .get_success ( self . store .get_event (msg_event .event_id ) )
144
143
145
144
self .assertEqual (msg_event .event_id , event .event_id )
146
145
@@ -164,15 +163,18 @@ def test_redact(self):
164
163
event .unsigned ["redacted_because" ],
165
164
)
166
165
167
- @defer .inlineCallbacks
168
166
def test_redact_join (self ):
169
- yield self .inject_room_member (self .room1 , self .u_alice , Membership .JOIN )
167
+ self .get_success (
168
+ self .inject_room_member (self .room1 , self .u_alice , Membership .JOIN )
169
+ )
170
170
171
- msg_event = yield self .inject_room_member (
172
- self .room1 , self .u_bob , Membership .JOIN , extra_content = {"blue" : "red" }
171
+ msg_event = self .get_success (
172
+ self .inject_room_member (
173
+ self .room1 , self .u_bob , Membership .JOIN , extra_content = {"blue" : "red" }
174
+ )
173
175
)
174
176
175
- event = yield self .store .get_event (msg_event .event_id )
177
+ event = self .get_success ( self . store .get_event (msg_event .event_id ) )
176
178
177
179
self .assertObjectHasAttributes (
178
180
{
@@ -187,13 +189,13 @@ def test_redact_join(self):
187
189
188
190
# Redact event
189
191
reason = "Because I said so"
190
- yield self .inject_redaction (
191
- self .room1 , msg_event .event_id , self .u_alice , reason
192
+ self .get_success (
193
+ self .inject_redaction ( self . room1 , msg_event .event_id , self .u_alice , reason )
192
194
)
193
195
194
196
# Check redaction
195
197
196
- event = yield self .store .get_event (msg_event .event_id )
198
+ event = self .get_success ( self . store .get_event (msg_event .event_id ) )
197
199
198
200
self .assertTrue ("redacted_because" in event .unsigned )
199
201
0 commit comments