mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	tests: Move bot event code out of setUp().
This code is only used in one test, and having the indirection of setUp partly obscured a problem with the fact that our event message is actually a wide dict that gets mutated by `build_bot_request`. We'll fix that soon, but this is a pure code move for now.
This commit is contained in:
		@@ -19,18 +19,6 @@ class TestGenericOutgoingWebhookService(ZulipTestCase):
 | 
				
			|||||||
    def setUp(self) -> None:
 | 
					    def setUp(self) -> None:
 | 
				
			||||||
        super().setUp()
 | 
					        super().setUp()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # TODO: Ideally, this test would use the full flow, rather
 | 
					 | 
				
			||||||
        # than making a mock message like this.
 | 
					 | 
				
			||||||
        message_id = self.send_stream_message(self.example_user('othello'),
 | 
					 | 
				
			||||||
                                              "Denmark", content="@**test**")
 | 
					 | 
				
			||||||
        message = Message.objects.get(id=message_id)
 | 
					 | 
				
			||||||
        wide_message_dict = MessageDict.wide_dict(message)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        self.event = {
 | 
					 | 
				
			||||||
            u'command': '@**test**',
 | 
					 | 
				
			||||||
            u'message': wide_message_dict,
 | 
					 | 
				
			||||||
            u'trigger': 'mention',
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        bot_user = get_user("outgoing-webhook@zulip.com", get_realm("zulip"))
 | 
					        bot_user = get_user("outgoing-webhook@zulip.com", get_realm("zulip"))
 | 
				
			||||||
        service_class = get_service_interface_class('whatever')  # GenericOutgoingWebhookService
 | 
					        service_class = get_service_interface_class('whatever')  # GenericOutgoingWebhookService
 | 
				
			||||||
        self.handler = service_class(service_name='test-service',
 | 
					        self.handler = service_class(service_name='test-service',
 | 
				
			||||||
@@ -72,11 +60,24 @@ class TestGenericOutgoingWebhookService(ZulipTestCase):
 | 
				
			|||||||
        self.assertTrue(m.called)
 | 
					        self.assertTrue(m.called)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_build_bot_request(self) -> None:
 | 
					    def test_build_bot_request(self) -> None:
 | 
				
			||||||
        request_data = self.handler.build_bot_request(self.event)
 | 
					        message_id = self.send_stream_message(self.example_user('othello'),
 | 
				
			||||||
 | 
					                                              "Denmark", content="@**test**")
 | 
				
			||||||
 | 
					        message = Message.objects.get(id=message_id)
 | 
				
			||||||
 | 
					        wide_message_dict = MessageDict.wide_dict(message)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        event = {
 | 
				
			||||||
 | 
					            u'command': '@**test**',
 | 
				
			||||||
 | 
					            u'message': wide_message_dict,
 | 
				
			||||||
 | 
					            u'trigger': 'mention',
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        request_data = self.handler.build_bot_request(event)
 | 
				
			||||||
        request_data = json.loads(request_data)
 | 
					        request_data = json.loads(request_data)
 | 
				
			||||||
        self.assertEqual(request_data['data'], "@**test**")
 | 
					        self.assertEqual(request_data['data'], "@**test**")
 | 
				
			||||||
        self.assertEqual(request_data['token'], "abcdef")
 | 
					        self.assertEqual(request_data['token'], "abcdef")
 | 
				
			||||||
        self.assertEqual(request_data['message'], self.event['message'])
 | 
					
 | 
				
			||||||
 | 
					        # TODO: This test doesn't properly show that message['event']
 | 
				
			||||||
 | 
					        #       is getting mutated by build_bot_request.
 | 
				
			||||||
 | 
					        self.assertEqual(request_data['message'], event['message'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_process_success(self) -> None:
 | 
					    def test_process_success(self) -> None:
 | 
				
			||||||
        response = dict(response_not_required=True)  # type: Dict[str, Any]
 | 
					        response = dict(response_not_required=True)  # type: Dict[str, Any]
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user