Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Convert RedactionTestCase to modern test style #5768

Merged
merged 1 commit into from
Jul 26, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/5768.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Convert RedactionTestCase to modern test style.
74 changes: 38 additions & 36 deletions tests/storage/test_redaction.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
# Copyright 2014-2016 OpenMarket Ltd
# Copyright 2019 The Matrix.org Foundation C.I.C.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -16,23 +17,21 @@

from mock import Mock

from twisted.internet import defer

from synapse.api.constants import EventTypes, Membership
from synapse.api.room_versions import RoomVersions
from synapse.types import RoomID, UserID

from tests import unittest
from tests.utils import create_room, setup_test_homeserver
from tests.utils import create_room


class RedactionTestCase(unittest.TestCase):
@defer.inlineCallbacks
def setUp(self):
hs = yield setup_test_homeserver(
self.addCleanup, resource_for_federation=Mock(), http_client=None
class RedactionTestCase(unittest.HomeserverTestCase):
def make_homeserver(self, reactor, clock):
return self.setup_test_homeserver(
resource_for_federation=Mock(), http_client=None
)

def prepare(self, reactor, clock, hs):
self.store = hs.get_datastore()
self.event_builder_factory = hs.get_event_builder_factory()
self.event_creation_handler = hs.get_event_creation_handler()
Expand All @@ -42,11 +41,12 @@ def setUp(self):

self.room1 = RoomID.from_string("!abc123:test")

yield create_room(hs, self.room1.to_string(), self.u_alice.to_string())
self.get_success(
create_room(hs, self.room1.to_string(), self.u_alice.to_string())
)

self.depth = 1

@defer.inlineCallbacks
def inject_room_member(
self, room, user, membership, replaces_state=None, extra_content={}
):
Expand All @@ -63,15 +63,14 @@ def inject_room_member(
},
)

event, context = yield self.event_creation_handler.create_new_client_event(
builder
event, context = self.get_success(
self.event_creation_handler.create_new_client_event(builder)
)

yield self.store.persist_event(event, context)
self.get_success(self.store.persist_event(event, context))

return event

@defer.inlineCallbacks
def inject_message(self, room, user, body):
self.depth += 1

Expand All @@ -86,15 +85,14 @@ def inject_message(self, room, user, body):
},
)

event, context = yield self.event_creation_handler.create_new_client_event(
builder
event, context = self.get_success(
self.event_creation_handler.create_new_client_event(builder)
)

yield self.store.persist_event(event, context)
self.get_success(self.store.persist_event(event, context))

return event

@defer.inlineCallbacks
def inject_redaction(self, room, event_id, user, reason):
builder = self.event_builder_factory.for_room_version(
RoomVersions.V1,
Expand All @@ -108,20 +106,21 @@ def inject_redaction(self, room, event_id, user, reason):
},
)

event, context = yield self.event_creation_handler.create_new_client_event(
builder
event, context = self.get_success(
self.event_creation_handler.create_new_client_event(builder)
)

yield self.store.persist_event(event, context)
self.get_success(self.store.persist_event(event, context))

@defer.inlineCallbacks
def test_redact(self):
yield self.inject_room_member(self.room1, self.u_alice, Membership.JOIN)
self.get_success(
self.inject_room_member(self.room1, self.u_alice, Membership.JOIN)
)

msg_event = yield self.inject_message(self.room1, self.u_alice, "t")
msg_event = self.get_success(self.inject_message(self.room1, self.u_alice, "t"))

# Check event has not been redacted:
event = yield self.store.get_event(msg_event.event_id)
event = self.get_success(self.store.get_event(msg_event.event_id))

self.assertObjectHasAttributes(
{
Expand All @@ -136,11 +135,11 @@ def test_redact(self):

# Redact event
reason = "Because I said so"
yield self.inject_redaction(
self.room1, msg_event.event_id, self.u_alice, reason
self.get_success(
self.inject_redaction(self.room1, msg_event.event_id, self.u_alice, reason)
)

event = yield self.store.get_event(msg_event.event_id)
event = self.get_success(self.store.get_event(msg_event.event_id))

self.assertEqual(msg_event.event_id, event.event_id)

Expand All @@ -164,15 +163,18 @@ def test_redact(self):
event.unsigned["redacted_because"],
)

@defer.inlineCallbacks
def test_redact_join(self):
yield self.inject_room_member(self.room1, self.u_alice, Membership.JOIN)
self.get_success(
self.inject_room_member(self.room1, self.u_alice, Membership.JOIN)
)

msg_event = yield self.inject_room_member(
self.room1, self.u_bob, Membership.JOIN, extra_content={"blue": "red"}
msg_event = self.get_success(
self.inject_room_member(
self.room1, self.u_bob, Membership.JOIN, extra_content={"blue": "red"}
)
)

event = yield self.store.get_event(msg_event.event_id)
event = self.get_success(self.store.get_event(msg_event.event_id))

self.assertObjectHasAttributes(
{
Expand All @@ -187,13 +189,13 @@ def test_redact_join(self):

# Redact event
reason = "Because I said so"
yield self.inject_redaction(
self.room1, msg_event.event_id, self.u_alice, reason
self.get_success(
self.inject_redaction(self.room1, msg_event.event_id, self.u_alice, reason)
)

# Check redaction

event = yield self.store.get_event(msg_event.event_id)
event = self.get_success(self.store.get_event(msg_event.event_id))

self.assertTrue("redacted_because" in event.unsigned)

Expand Down