Merge pull request #314 from matrix-org/paul/event-redaction
Add some unit tests of prune_events()pull/325/head
						commit
						87da71bace
					
				|  | @ -0,0 +1,115 @@ | |||
| # -*- coding: utf-8 -*- | ||||
| # Copyright 2015 OpenMarket Ltd | ||||
| # | ||||
| # Licensed under the Apache License, Version 2.0 (the 'License'); | ||||
| # you may not use this file except in compliance with the License. | ||||
| # You may obtain a copy of the License at | ||||
| # | ||||
| #     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| # | ||||
| # Unless required by applicable law or agreed to in writing, software | ||||
| # distributed under the License is distributed on an 'AS IS' BASIS, | ||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| # See the License for the specific language governing permissions and | ||||
| # limitations under the License. | ||||
| 
 | ||||
| 
 | ||||
| from .. import unittest | ||||
| 
 | ||||
| from synapse.events import FrozenEvent | ||||
| from synapse.events.utils import prune_event | ||||
| 
 | ||||
| class PruneEventTestCase(unittest.TestCase): | ||||
|     """ Asserts that a new event constructed with `evdict` will look like | ||||
|     `matchdict` when it is redacted. """ | ||||
|     def run_test(self, evdict, matchdict): | ||||
|         self.assertEquals( | ||||
|             prune_event(FrozenEvent(evdict)).get_dict(), | ||||
|             matchdict | ||||
|         ) | ||||
| 
 | ||||
|     def test_minimal(self): | ||||
|         self.run_test( | ||||
|             {'type': 'A'}, | ||||
|             { | ||||
|                 'type': 'A', | ||||
|                 'content': {}, | ||||
|                 'signatures': {}, | ||||
|                 'unsigned': {}, | ||||
|             } | ||||
|         ) | ||||
| 
 | ||||
|     def test_basic_keys(self): | ||||
|         self.run_test( | ||||
|             { | ||||
|                 'type': 'A', | ||||
|                 'room_id': '!1:domain', | ||||
|                 'sender': '@2:domain', | ||||
|                 'event_id': '$3:domain', | ||||
|                 'origin': 'domain', | ||||
|             }, | ||||
|             { | ||||
|                 'type': 'A', | ||||
|                 'room_id': '!1:domain', | ||||
|                 'sender': '@2:domain', | ||||
|                 'event_id': '$3:domain', | ||||
|                 'origin': 'domain', | ||||
|                 'content': {}, | ||||
|                 'signatures': {}, | ||||
|                 'unsigned': {}, | ||||
|             } | ||||
|         ) | ||||
| 
 | ||||
|     def test_unsigned_age_ts(self): | ||||
|         self.run_test( | ||||
|             { | ||||
|                 'type': 'B', | ||||
|                 'unsigned': {'age_ts': 20}, | ||||
|             }, | ||||
|             { | ||||
|                 'type': 'B', | ||||
|                 'content': {}, | ||||
|                 'signatures': {}, | ||||
|                 'unsigned': {'age_ts': 20}, | ||||
|             } | ||||
|         ) | ||||
| 
 | ||||
|         self.run_test( | ||||
|             { | ||||
|                 'type': 'B', | ||||
|                 'unsigned': {'other_key': 'here'}, | ||||
|             }, | ||||
|             { | ||||
|                 'type': 'B', | ||||
|                 'content': {}, | ||||
|                 'signatures': {}, | ||||
|                 'unsigned': {}, | ||||
|             } | ||||
|         ) | ||||
| 
 | ||||
|     def test_content(self): | ||||
|         self.run_test( | ||||
|             { | ||||
|                 'type': 'C', | ||||
|                 'content': {'things': 'here'}, | ||||
|             }, | ||||
|             { | ||||
|                 'type': 'C', | ||||
|                 'content': {}, | ||||
|                 'signatures': {}, | ||||
|                 'unsigned': {}, | ||||
|             } | ||||
|         ) | ||||
| 
 | ||||
|         self.run_test( | ||||
|             { | ||||
|                 'type': 'm.room.create', | ||||
|                 'content': {'creator': '@2:domain', 'other_field': 'here'}, | ||||
|             }, | ||||
|             { | ||||
|                 'type': 'm.room.create', | ||||
|                 'content': {'creator': '@2:domain'}, | ||||
|                 'signatures': {}, | ||||
|                 'unsigned': {}, | ||||
|             } | ||||
|         ) | ||||
		Loading…
	
		Reference in New Issue
	
	 Mark Haines
						Mark Haines