Fix bug where synapse was sending AS user queries incorrectly.
Bug introduced in 92b20713d7
which reversed the comparison when checking if a user existed
in the users table. Added UTs to prevent this happening again.
			
			
				pull/191/head
			
			
		
							parent
							
								
									9a3cd1c00d
								
							
						
					
					
						commit
						d88e20cdb9
					
				|  | @ -177,7 +177,7 @@ class ApplicationServicesHandler(object): | |||
|             return | ||||
| 
 | ||||
|         user_info = yield self.store.get_user_by_id(user_id) | ||||
|         if not user_info: | ||||
|         if user_info: | ||||
|             defer.returnValue(False) | ||||
|             return | ||||
| 
 | ||||
|  |  | |||
|  | @ -57,6 +57,49 @@ class AppServiceHandlerTestCase(unittest.TestCase): | |||
|             interested_service, event | ||||
|         ) | ||||
| 
 | ||||
|     @defer.inlineCallbacks | ||||
|     def test_query_user_exists_unknown_user(self): | ||||
|         user_id = "@someone:anywhere" | ||||
|         services = [self._mkservice(is_interested=True)] | ||||
|         services[0].is_interested_in_user = Mock(return_value=True) | ||||
|         self.mock_store.get_app_services = Mock(return_value=services) | ||||
|         self.mock_store.get_user_by_id = Mock(return_value=None) | ||||
| 
 | ||||
|         event = Mock( | ||||
|             sender=user_id, | ||||
|             type="m.room.message", | ||||
|             room_id="!foo:bar" | ||||
|         ) | ||||
|         self.mock_as_api.push = Mock() | ||||
|         self.mock_as_api.query_user = Mock() | ||||
|         yield self.handler.notify_interested_services(event) | ||||
|         self.mock_as_api.query_user.assert_called_once_with( | ||||
|             services[0], user_id | ||||
|         ) | ||||
| 
 | ||||
|     @defer.inlineCallbacks | ||||
|     def test_query_user_exists_known_user(self): | ||||
|         user_id = "@someone:anywhere" | ||||
|         services = [self._mkservice(is_interested=True)] | ||||
|         services[0].is_interested_in_user = Mock(return_value=True) | ||||
|         self.mock_store.get_app_services = Mock(return_value=services) | ||||
|         self.mock_store.get_user_by_id = Mock(return_value={ | ||||
|             "name": user_id | ||||
|         }) | ||||
| 
 | ||||
|         event = Mock( | ||||
|             sender=user_id, | ||||
|             type="m.room.message", | ||||
|             room_id="!foo:bar" | ||||
|         ) | ||||
|         self.mock_as_api.push = Mock() | ||||
|         self.mock_as_api.query_user = Mock() | ||||
|         yield self.handler.notify_interested_services(event) | ||||
|         self.assertFalse( | ||||
|             self.mock_as_api.query_user.called, | ||||
|             "query_user called when it shouldn't have been." | ||||
|         ) | ||||
| 
 | ||||
|     @defer.inlineCallbacks | ||||
|     def test_query_room_alias_exists(self): | ||||
|         room_alias_str = "#foo:bar" | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Kegan Dougal
						Kegan Dougal