2013-08-08 5 views
2

cherrypy.quickstart 대신 cherrypy.engine.start로 cherrypy를 실행하려고합니다. py.test를 사용하여 기능 테스트 내에서 웹 서버를 시작하고 중지하기 위해 비 차단 상태에서 cherrypy를 실행하려고하기 때문입니다. 컬에비 차단 CherryPy가 수신하지 않습니다.

cherrypy.quickstart(WebServerTest(None), config=testconf) 

응답은 다음과 같습니다 :

curl --head http://127.0.0.1:1026/index HTTP/1.1 200 OK 
    Date: Thu, 08 Aug 2013 12:54:37 GMT 
    Content-Length: 0 
    Content-Type: text/html;charset=utf-8 
    Server: CherryPy/3.2.2 

을하지만 실행 스크립트의 나머지 부분을 막고

이 잘 작동합니다.

그러나이 작동하지 않습니다

testconf = path.join(path.dirname(__file__), 'webservertest.conf') 
web_server = WebServerTest(None) 
cherrypy.tree.mount(web_server, "", config=testconf) 
cherrypy.engine.start() 
time.sleep(60) 
cherrypy.engine.stop() 

컬에 대한 응답은 다음과 같습니다

curl --head http://127.0.0.1:1026/index 
    curl: (7) couldn't connect to host 


추가 cherrypy.engine.block() cherrypy.engine.start가 해결되지 않는 aftet 문제.


그래서 cherrypy.engine.start()와 함께 작동하게하려면 어떻게해야합니까?


webservertest.conf 설정 파일은 다음과 같습니다

[global] 
server.socket_host = "127.0.0.1" 
server.socket_port = 1026 
server.thread_pool = 10 

답변

2

는 또한 cherrypy.config.update(conf)에 conf의를 통과해야합니다. 이것은 글로벌 구성 (서버 호스트 및 포트 포함)을위한 것이지만 반면 tree.mount 호출은 해당 특정 응용 프로그램에 대한 구성 만 설정합니다. 모든 세부 사항을 보려면 quickstart 소스 코드를 읽어보십시오.

+0

그게 전부 였어! 간단히 추가 : cherrypy.config.update (testconf)가 작동했습니다! 감사합니다. – antoinet