test_extension.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import os
  2. import pytest
  3. def test_serverextension_path(app):
  4. import jupyter_lsp
  5. paths = jupyter_lsp._jupyter_server_extension_paths()
  6. for path in paths:
  7. assert __import__(path["module"])
  8. def test_serverextension(app):
  9. app.initialize(
  10. ["--ServerApp.jpserver_extensions={'jupyter_lsp.serverextension': True}"]
  11. )
  12. assert app.language_server_manager
  13. found_lsp = False
  14. for r in app.web_app.default_router.rules:
  15. for rr in r.target.rules:
  16. if "/lsp/" in str(rr.matcher.regex):
  17. found_lsp = True
  18. assert found_lsp, "apparently didn't install the /lsp/ route"
  19. def test_default_virtual_documents_dir(app):
  20. app.initialize(
  21. ["--ServerApp.jpserver_extensions={'jupyter_lsp.serverextension': True}"]
  22. )
  23. assert app.language_server_manager.virtual_documents_dir == ".virtual_documents"
  24. def test_virtual_documents_dir_config(app):
  25. custom_dir = ".custom_virtual_dir"
  26. app.initialize(
  27. [
  28. "--ServerApp.jpserver_extensions={'jupyter_lsp.serverextension': True}",
  29. "--ServerApp.LanguageServerManager.virtual_documents_dir=" + custom_dir,
  30. ]
  31. )
  32. assert app.language_server_manager.virtual_documents_dir == custom_dir
  33. def test_virtual_documents_dir_env(app):
  34. os.environ["JP_LSP_VIRTUAL_DIR"] = custom_dir = ".custom_virtual_dir"
  35. app.initialize(
  36. ["--ServerApp.jpserver_extensions={'jupyter_lsp.serverextension': True}"]
  37. )
  38. assert app.language_server_manager.virtual_documents_dir == custom_dir
  39. page_config = app.web_app.settings["page_config_data"]
  40. assert page_config["virtualDocumentsUri"].endswith(custom_dir)
  41. @pytest.mark.parametrize("invalid_path", ["", "."])
  42. def test_virtual_documents_dir_env_empty(app, invalid_path):
  43. os.environ["JP_LSP_VIRTUAL_DIR"] = invalid_path
  44. app.initialize(
  45. ["--ServerApp.jpserver_extensions={'jupyter_lsp.serverextension': True}"]
  46. )
  47. page_config = app.web_app.settings["page_config_data"]
  48. assert page_config["virtualDocumentsUri"].endswith("/.virtual_documents")