2016-12-20 2 views
0

Ich habe einen Webapp2-Server, der zwei verschiedene URLs darauf zeigt. In meinem Handler Dispatch-Funktion zu überprüfen, um zu sehen, welche ich Host hat die Anfrage kommt von:Wie überschreibt man den Self.request.host in einem webapp2 Handler Unit Test?

class MyHandler(webapp2.RequestHandler): 

    def dispatch(self): 
    if self.request.host == 'my url': 
     # Do something. 
    else: 
     # Do something else. 

In meinem Unit-Test Ich spinne einen lokalen Test-App und Verwendung webapp2.Request.blank Anfragen, um es zu machen:

Ich frage mich, ob es möglich ist, den request.host in diesem Kontext zu überschreiben, um eine meiner URLs zu entsprechen? Im Moment kommt es immer als localhost: 80 egal was ich probiert habe. Vielen Dank.

Antwort

0

Ich bin immer noch nicht sicher, ob das, was ich frage möglich ist, aber ich fand eine Abhilfe durch meine Handler erstreckt und das Überschreiben des request.host Wert:

class TestHandler(MyHandler): 
    def __init__(self, *args, **kwargs): 
    super(TestHandler, self).__init__(*args, **kwargs)         
    self.request.host = 'my url' 

test_app = webapp2.WSGIApplication([('/', TestHandler)]) 
request = webapp2.Request.blank('/') 
response = request.get_response(test_app)