Простой веб-сервер или веб-тестирование - PullRequest
2 голосов
/ 22 апреля 2009

Необходимо протестировать сложное веб-приложение, которое взаимодействует с удаленными сторонними веб-сервисами на основе cgi. Я планирую реализовать некоторые сторонние сервисы на фиктивном веб-сервере, чтобы я мог полностью контролировать тестовые случаи. Ищите простой Python http веб-сервер или фреймворк для эмуляции стороннего интерфейса.

Ответы [ 5 ]

4 голосов
/ 22 апреля 2009

Используйте cherrypy , взгляните на Hello World:

import cherrypy

class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

cherrypy.quickstart(HelloWorld())

Запустите этот код, и у вас будет очень быстрый сервер Hello World, готовый к localhost порту 8080 !! Довольно просто, да?

2 голосов
/ 22 апреля 2009

Возможно, вам больше всего по душе сервис WSGI, поскольку он больше всего похож на CGI.

Посмотрите на werkzeug .

2 голосов
/ 22 апреля 2009

Взгляните на стандартный модуль wsgiref:

https://docs.python.org/2.6/library/wsgiref.html

В конце этой страницы приведен небольшой пример. Нечто подобное уже может быть достаточно для ваших нужд.

0 голосов
/ 27 апреля 2009

Может быть, проще было бы смоделировать (или заглушку, или как там этот термин) urllib, или какой-либо другой модуль, который вы используете для связи с удаленным веб-сервисом?

Даже простого переопределения urllib.urlopen может быть достаточно:

import urllib
from StringIO import StringIO

class mock_response(StringIO):
    def info(self):
        raise NotImplementedError("mocked urllib response has no info method")
    def getinfo():
        raise NotImplementedError("mocked urllib response has no getinfo method")

def urlopen(url):
    if url == "http://example.com/api/something":
        resp = mock_response("<xml></xml>")
        return resp
    else:
        urllib.urlopen(url)


is_unittest = True

if is_unittest:
    urllib.urlopen = urlopen

print urllib.urlopen("http://example.com/api/something").read()

Я использовал нечто очень похожее здесь , чтобы эмулировать простой API, прежде чем я получил ключ API.

0 голосов
/ 22 апреля 2009

Я бы посмотрел на Джанго .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...