浏览代码

Remove e2e testing for taipy-gui (#611)

* Remove e2e testing for taipy-gui

* keep tests

* fix tests

* fix status test

* put notebook test as e2e

* remove ipython setup

* Update tests

* Update taipy/gui/gui.py

Co-authored-by: Fabien Lelaquais <86590727+FabienLelaquais@users.noreply.github.com>

---------

Co-authored-by: Fabien Lelaquais <86590727+FabienLelaquais@users.noreply.github.com>
dinhlongnguyen 1 年之前
父节点
当前提交
97549df369

+ 1 - 10
.github/workflows/overall-tests.yml

@@ -39,17 +39,8 @@ jobs:
         if: matrix.os == 'macos-latest'
         run: brew install libmagic
 
-      - uses: actions/setup-node@v4
-        with:
-          node-version: 20
-      - name: Frontend Bundle Build
-        run: pipenv run python tools/frontend/bundle_build.py
-
-      - name: Install Playwright
-        run: pipenv run playwright install chromium --with-deps
-
       - name: Pytest
-        run: pipenv run pytest -m "not orchestrator_dispatcher and not standalone" --cov=taipy --cov-append --cov-report="xml:overall-coverage.xml" --cov-report term-missing tests
+        run: pipenv run pytest -m "not orchestrator_dispatcher and not standalone and not teste2e" --cov=taipy --cov-append --cov-report="xml:overall-coverage.xml" --cov-report term-missing tests
 
       - name: Coverage
         if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'

+ 16 - 12
taipy/gui/gui.py

@@ -2063,6 +2063,21 @@ class Gui:
         if isinstance(state, State):
             self.__state = state
 
+    def _get_webapp_path(self):
+        _conf_webapp_path = (
+            pathlib.Path(self._get_config("webapp_path", None)) if self._get_config("webapp_path", None) else None
+        )
+        _webapp_path = str((pathlib.Path(__file__).parent / "webapp").resolve())
+        if _conf_webapp_path:
+            if _conf_webapp_path.is_dir():
+                _webapp_path = str(_conf_webapp_path.resolve())
+                _warn(f"Using webapp_path: '{_conf_webapp_path}'.")
+            else:  # pragma: no cover
+                _warn(
+                    f"webapp_path: '{_conf_webapp_path}' is not a valid directory. Falling back to '{_webapp_path}'."  # noqa: E501
+                )
+        return _webapp_path
+
     def __get_client_config(self) -> t.Dict[str, t.Any]:
         config = {
             "timeZone": self._config.get_time_zone(),
@@ -2190,18 +2205,7 @@ class Gui:
 
         self._flask_blueprint.append(extension_bp)
 
-        _conf_webapp_path = (
-            pathlib.Path(self._get_config("webapp_path", None)) if self._get_config("webapp_path", None) else None
-        )
-        _webapp_path = str((pathlib.Path(__file__).parent / "webapp").resolve())
-        if _conf_webapp_path:
-            if _conf_webapp_path.is_dir():
-                _webapp_path = str(_conf_webapp_path.resolve())
-                _warn(f"Using webapp_path: '{_conf_webapp_path}'.")
-            else:  # pragma: no cover
-                _warn(
-                    f"webapp_path: '{_conf_webapp_path}' is not a valid directory path. Falling back to '{_webapp_path}'."  # noqa: E501
-                )
+        _webapp_path = self._get_webapp_path()
 
         self._flask_blueprint.append(
             self._server._get_default_blueprint(

+ 1 - 0
tests/gui/e2e/test_timezone.py

@@ -67,6 +67,7 @@ def _timezone_test_template(page: "Page", gui: Gui, helpers, time_zone, texts):
     assert text1.inner_text() in texts
 
 
+@pytest.mark.teste2e
 def test_date_only(page: "Page", gui: Gui, helpers):
     page_md = """
 <|{t}|id=text1|>

+ 1 - 0
tests/gui/notebook/test_notebook_simple_gui.py

@@ -18,6 +18,7 @@ from testbook import testbook
 
 
 @pytest.mark.filterwarnings("ignore::RuntimeWarning")
+@pytest.mark.teste2e
 @testbook("tests/gui/notebook/simple_gui.ipynb")
 def test_notebook_simple_gui(tb, helpers):
     tb.execute_cell("import")

+ 10 - 8
tests/gui/server/http/test_status.py

@@ -10,6 +10,7 @@
 # specific language governing permissions and limitations under the License.
 
 import inspect
+from os import path
 from unittest.mock import patch
 
 from taipy.gui import Gui
@@ -38,14 +39,15 @@ def test_get_extended_status(gui: Gui):
     assert ret.status_code == 200, f"status_code => {ret.status_code} != 200"
     assert ret.mimetype == "application/json", f"mimetype => {ret.mimetype} != application/json"
     assert ret.json, "json is not defined"
-    gui_ret = ret.json.get("gui")
-    assert "backend_version" in gui_ret, "json.gui has no key backend_version"
-    assert "flask_version" in gui_ret, "json.gui has no key flask_version"
-    assert "frontend_version" in gui_ret, "json.gui has no key frontend_version"
-    assert "host" in gui_ret, "json.gui has no key host"
-    assert "python_version" in gui_ret, "json.gui has no key python_version"
-    assert "user_status" in gui_ret, "json.gui has no key user_status"
-    assert gui_ret.get("user_status") == "", "json.gui.user_status is not empty"
+    gui_json = ret.json.get("gui")
+    assert "backend_version" in gui_json, "json.gui has no key backend_version"
+    assert "flask_version" in gui_json, "json.gui has no key flask_version"
+    if path.exists(gui._get_webapp_path()):
+        assert "frontend_version" in gui_json, "json.gui has no key frontend_version"
+    assert "host" in gui_json, "json.gui has no key host"
+    assert "python_version" in gui_json, "json.gui has no key python_version"
+    assert "user_status" in gui_json, "json.gui has no key user_status"
+    assert gui_json.get("user_status") == "", "json.gui.user_status is not empty"
 
 
 def test_get_status_with_user_status(gui: Gui):

+ 0 - 1
tox.ini

@@ -79,4 +79,3 @@ commands =
     pipenv run playwright install chromium --with-deps
     pipenv run pip freeze
     pipenv run pytest -s tests
-