2014-01-05 1 views
4

Я тестирую приложение webapp2 и хотел бы написать тест, имитирующий сообщение в файле. Как создать объект запроса в модульном тесте, который содержит смоделированное содержимое файла?Как вы можете тестировать сообщение в файле с помощью webapp2?

import unittest 
import webapp2 

import main 

file_contents = """id, first, last 
1, Bruce, Banner 
2, Tony, Stark 
""" 

class TestHandlers(unittest.TestCase): 
    def test_hello(self): 

     request = webapp2.Request.blank('/') 
     request.method = 'POST' 

     # Magic needed here. 
     #Put file_contents into a form parameter 

     response = request.get_response(main.app) 
     #Test that the returned text contains something from the posted file 
     self.assertEqual(True, "Bruce" in response.body) 

ответ

2

Похоже, что пустой метод включает в себя именованный параметр POST. В документах http://webapp-improved.appspot.com/guide/testing.html#request-blank говорится, что при использовании метода запроса автоматически устанавливается значение POST, а для параметра CONTENT_TYPE установлено значение «application/x-www-form-urlencoded».

Так в приведенном выше это может быть просто:

post_contents = {'someVar':file_contents} 
request = webapp2.Request.blank('/', POST=post_contents) 
response = request.get_response(main.app)