fix(navigation): support Python 3.6 static assets
This commit is contained in:
@@ -125,11 +125,6 @@ def _prewarm_station_directory_cache():
|
||||
class StationNavigationHandler(SimpleHTTPRequestHandler):
|
||||
server_version = "LingniuStationNavigation/1.0"
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
# Static files must resolve from this release directory even when the
|
||||
# local launcher is invoked from the repository root.
|
||||
super().__init__(*args, directory=str(ROOT), **kwargs)
|
||||
|
||||
def do_GET(self):
|
||||
path = urlparse(self.path).path
|
||||
if path in {"/", "/index.html"}:
|
||||
@@ -224,6 +219,9 @@ class StationNavigationHandler(SimpleHTTPRequestHandler):
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Python 3.6 on ECS predates SimpleHTTPRequestHandler(directory=...).
|
||||
# Resolve static assets from this release directory before serving.
|
||||
os.chdir(str(ROOT))
|
||||
server = ThreadingHTTPServer((HOST, PORT), StationNavigationHandler)
|
||||
threading.Thread(target=_prewarm_station_directory_cache, daemon=True).start()
|
||||
print(f"Lingniu Station Navigation listening on http://{HOST}:{PORT}")
|
||||
|
||||
@@ -31,7 +31,7 @@ class StationNavigationTest(unittest.TestCase):
|
||||
self.assertRegex(server.STATIC_ASSET_VERSION, r"^[0-9a-f]{16}$")
|
||||
|
||||
def test_static_assets_resolve_from_the_release_directory(self):
|
||||
self.assertIn('directory=str(ROOT)', Path(__file__).parents[1].joinpath('server.py').read_text(encoding='utf-8'))
|
||||
self.assertIn('os.chdir(str(ROOT))', Path(__file__).parents[1].joinpath('server.py').read_text(encoding='utf-8'))
|
||||
|
||||
def test_default_cache_window_is_two_minutes(self):
|
||||
self.assertEqual(server.STATION_CACHE_SECONDS, 120)
|
||||
|
||||
Reference in New Issue
Block a user