field_ios

In-the-field app for Radroots on iOS
git clone https://radroots.dev/git/field_ios.git
Log | Files | Refs | README | LICENSE

local_social_test_support.py (582B)


      1 """Scoped HTTP server ownership for the real local-social fixture tests."""
      2 
      3 from contextlib import contextmanager
      4 from http.server import ThreadingHTTPServer
      5 from threading import Thread
      6 
      7 
      8 @contextmanager
      9 def blossom_server(handler, state):
     10     handler.state = state
     11     server = ThreadingHTTPServer(("127.0.0.1", 0), handler)
     12     state.blossom_port = server.server_address[1]
     13     thread = Thread(target=server.serve_forever, daemon=True)
     14     thread.start()
     15     try:
     16         yield
     17     finally:
     18         server.shutdown()
     19         server.server_close()
     20         thread.join(timeout=5)