bots: Add test file for 'giphy' bot.
This bot replies with different gif for the same query that is provided. Mocked a definite response from requests.get function.
This commit is contained in:
		
							parent
							
								
									d0e5447cd0
								
							
						
					
					
						commit
						709a2521a1
					
				
					 1 changed files with 61 additions and 0 deletions
				
			
		
							
								
								
									
										61
									
								
								bots/giphy/test_giphy.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								bots/giphy/test_giphy.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,61 @@ | ||||||
|  | #!/usr/bin/env python | ||||||
|  | 
 | ||||||
|  | from __future__ import absolute_import | ||||||
|  | from __future__ import print_function | ||||||
|  | 
 | ||||||
|  | import os | ||||||
|  | import sys | ||||||
|  | import json | ||||||
|  | 
 | ||||||
|  | our_dir = os.path.dirname(os.path.abspath(__file__)) | ||||||
|  | sys.path.insert(0, os.path.normpath(os.path.join(our_dir))) | ||||||
|  | # For dev setups, we can find the API in the repo itself. | ||||||
|  | if os.path.exists(os.path.join(our_dir, '..')): | ||||||
|  |     sys.path.insert(0, '..') | ||||||
|  | from bots_test_lib import BotTestCase | ||||||
|  | from bots.giphy import giphy | ||||||
|  | 
 | ||||||
|  | def get_http_response_json(gif_url): | ||||||
|  |     response_json = { | ||||||
|  |         'meta': { | ||||||
|  |             'status': 200 | ||||||
|  |         }, | ||||||
|  |         'data': { | ||||||
|  |             'images': { | ||||||
|  |                 'original': { | ||||||
|  |                     'url': gif_url | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     return response_json | ||||||
|  | 
 | ||||||
|  | def get_bot_response(gif_url): | ||||||
|  |     return ('[Click to enlarge](%s)' | ||||||
|  |             '[](/static/images/interactive-bot/giphy/powered-by-giphy.png)' | ||||||
|  |             % (gif_url)) | ||||||
|  | 
 | ||||||
|  | def get_http_request(keyword): | ||||||
|  |     return { | ||||||
|  |         'api_url': giphy.GIPHY_TRANSLATE_API, | ||||||
|  |         'params': { | ||||||
|  |             's': keyword, | ||||||
|  |             'api_key': giphy.get_giphy_api_key_from_config() | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | class TestGiphyBot(BotTestCase): | ||||||
|  |     bot_name = "giphy" | ||||||
|  | 
 | ||||||
|  |     def test_bot(self): | ||||||
|  |         # This message calls `send_reply` function of BotHandlerApi | ||||||
|  |         keyword = "Hello" | ||||||
|  |         gif_url = "https://media4.giphy.com/media/3o6ZtpxSZbQRRnwCKQ/giphy.gif" | ||||||
|  |         expectations = { | ||||||
|  |             keyword: get_bot_response(gif_url) | ||||||
|  |         } | ||||||
|  |         self.check_expected_responses( | ||||||
|  |             expectations=expectations, | ||||||
|  |             http_request=get_http_request(keyword), | ||||||
|  |             http_response=get_http_response_json(gif_url) | ||||||
|  |         ) | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Abhijeet Kaur
						Abhijeet Kaur