J'essaie de patcher un framework de test construit en python pour javascript appelé mootools-test-runner (je suis un développeur frontal par jour, donc mes compétences python sont assez faible ... vraiment faible.)Répondre à httpRequest après avoir utilisé threading.Timer pour retarder la réponse
Le cas d'utilisation est que nous voulons être en mesure de faire une demande de JSON au serveur et avoir un délai x temps avant son retour - à l'origine, il a été écrit pour utiliser un méthode de sommeil, mais cela a empêché plusieurs demandes simultanées. Sooo ... après avoir farfouillé pendant environ un jour je suis arrivé au code ci-dessous. Le problème que je vois (bien qu'il pourrait bien y avoir beaucoup de problèmes avec mon code) est:
La vue test_runner.views.echo_json n'a pas retourné un objet HttpResponse.
si quelqu'un pouvait offrir des conseils ou me diriger dans la bonne direction, je serais très reconnaissant - merci!
def echo_json(req, wasDelayed=False):
if req.REQUEST.get('delay') and wasDelayed == False:
sleeper(req, echo_jsonp)
else:
response = {}
callback = req.REQUEST.get('callback', False)
noresponse_eys = ['callback', 'delay']
for key, value in req.REQUEST.items():
if key not in noresponse_keys:
response.update({key: value})
response = simplejson.dumps(response)
if callback:
response = '%s(%s);' % (callback, response)
return HttpResponse(response, mimetype='application/javascript')
def sleeper(req, callback)
delay = float(req.REQUEST.get('delay'))
t = threading.Timer(delay, functools.partial(callback, req, true))
t.start()
Veuillez ajouter votre framework Python aux tags. –
oh désolé, merci :) – jacobthornton