devtools/httptest.py
changeset 10781 e2ab20561932
parent 10609 e2d8e81bfe68
child 11014 9c9f5e913f9c
equal deleted inserted replaced
10780:a96ed0acc556 10781:e2ab20561932
    27 import socket
    27 import socket
    28 
    28 
    29 from six.moves import range, http_client
    29 from six.moves import range, http_client
    30 from six.moves.urllib.parse import urlparse
    30 from six.moves.urllib.parse import urlparse
    31 
    31 
    32 from twisted.internet import reactor, error
       
    33 
    32 
    34 from cubicweb.etwist.server import run
       
    35 from cubicweb.devtools.testlib import CubicWebTC
    33 from cubicweb.devtools.testlib import CubicWebTC
    36 from cubicweb.devtools import ApptestConfiguration
    34 from cubicweb.devtools import ApptestConfiguration
    37 
    35 
    38 
    36 
    39 def get_available_port(ports_scan):
    37 def get_available_port(ports_scan):
    90     * `anonymous_allowed`: flag telling if anonymous browsing should be allowed
    88     * `anonymous_allowed`: flag telling if anonymous browsing should be allowed
    91     """
    89     """
    92     configcls = CubicWebServerConfig
    90     configcls = CubicWebServerConfig
    93 
    91 
    94     def start_server(self):
    92     def start_server(self):
       
    93         from twisted.internet import reactor
       
    94         from cubicweb.etwist.server import run
    95         # use a semaphore to avoid starting test while the http server isn't
    95         # use a semaphore to avoid starting test while the http server isn't
    96         # fully initilialized
    96         # fully initilialized
    97         semaphore = threading.Semaphore(0)
    97         semaphore = threading.Semaphore(0)
    98         def safe_run(*args, **kwargs):
    98         def safe_run(*args, **kwargs):
    99             try:
    99             try:
   117                                                         parseurl.port)
   117                                                         parseurl.port)
   118         self._ident_cookie = None
   118         self._ident_cookie = None
   119 
   119 
   120     def stop_server(self, timeout=15):
   120     def stop_server(self, timeout=15):
   121         """Stop the webserver, waiting for the thread to return"""
   121         """Stop the webserver, waiting for the thread to return"""
       
   122         from twisted.internet import reactor
   122         if self._web_test_cnx is None:
   123         if self._web_test_cnx is None:
   123             self.web_logout()
   124             self.web_logout()
   124             self._web_test_cnx.close()
   125             self._web_test_cnx.close()
   125         try:
   126         try:
   126             reactor.stop()
   127             reactor.stop()
   175     def setUp(self):
   176     def setUp(self):
   176         super(CubicWebServerTC, self).setUp()
   177         super(CubicWebServerTC, self).setUp()
   177         self.start_server()
   178         self.start_server()
   178 
   179 
   179     def tearDown(self):
   180     def tearDown(self):
       
   181         from twisted.internet import error
   180         try:
   182         try:
   181             self.stop_server()
   183             self.stop_server()
   182         except error.ReactorNotRunning as err:
   184         except error.ReactorNotRunning as err:
   183             # Server could be launched manually
   185             # Server could be launched manually
   184             print(err)
   186             print(err)