diff options
author | Richard van der Hoff <richard@matrix.org> | 2020-01-28 11:02:55 +0000 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2020-01-29 11:52:52 +0000 |
commit | ee42a5513e020424daa736962fee7fb69bd2373a (patch) | |
tree | f320063b5bcd810c8c4d51aa95179c5f6c83efe5 /tests/events/test_utils.py | |
parent | Fix race in federation sender that delayed device updates. (#6799) (diff) | |
download | synapse-ee42a5513e020424daa736962fee7fb69bd2373a.tar.xz |
Factor out a `copy_power_levels_contents` method
I'm going to need another copy (hah!) of this.
Diffstat (limited to 'tests/events/test_utils.py')
-rw-r--r-- | tests/events/test_utils.py | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/tests/events/test_utils.py b/tests/events/test_utils.py index 9e3d4d0f47..2b13980dfd 100644 --- a/tests/events/test_utils.py +++ b/tests/events/test_utils.py @@ -15,9 +15,14 @@ from synapse.events import FrozenEvent -from synapse.events.utils import prune_event, serialize_event +from synapse.events.utils import ( + copy_power_levels_contents, + prune_event, + serialize_event, +) +from synapse.util.frozenutils import freeze -from .. import unittest +from tests import unittest def MockEvent(**kwargs): @@ -241,3 +246,39 @@ class SerializeEventTestCase(unittest.TestCase): self.serialize( MockEvent(room_id="!foo:bar", content={"foo": "bar"}), ["room_id", 4] ) + + +class CopyPowerLevelsContentTestCase(unittest.TestCase): + def setUp(self) -> None: + self.test_content = { + "ban": 50, + "events": {"m.room.name": 100, "m.room.power_levels": 100}, + "events_default": 0, + "invite": 50, + "kick": 50, + "notifications": {"room": 20}, + "redact": 50, + "state_default": 50, + "users": {"@example:localhost": 100}, + "users_default": 0, + } + + def _test(self, input): + a = copy_power_levels_contents(input) + + self.assertEqual(a["ban"], 50) + self.assertEqual(a["events"]["m.room.name"], 100) + + # make sure that changing the copy changes the copy and not the orig + a["ban"] = 10 + a["events"]["m.room.power_levels"] = 20 + + self.assertEqual(input["ban"], 50) + self.assertEqual(input["events"]["m.room.power_levels"], 100) + + def test_unfrozen(self): + self._test(self.test_content) + + def test_frozen(self): + input = freeze(self.test_content) + self._test(input) |