From a8b4612ce1eedba4560abb4f8d7c0e5798a9928b Mon Sep 17 00:00:00 2001 From: ci-bot Date: Mon, 25 Aug 2025 13:52:53 +0000 Subject: [PATCH] CI: update test report and coverage files --- markdown/TEST-REPORT.md | 76 ++++++++++++++++++------------------- markdown/pytest-report.json | 2 +- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/markdown/TEST-REPORT.md b/markdown/TEST-REPORT.md index 7ed0b186b..39bd33feb 100644 --- a/markdown/TEST-REPORT.md +++ b/markdown/TEST-REPORT.md @@ -1,8 +1,8 @@ # 🧪 Test Report -*Generated on 2025-08-25 15:44:44 CEST* +*Generated on 2025-08-25 15:52:52 CEST* ## 🧾 General Info -- **duration**: 26.085079431533813 +- **duration**: 26.528825759887695 - **root**: /workspace/tligui_y/slic - **environment**: {} @@ -29,7 +29,7 @@ **duration:** ```python - 0.0008180169388651848 + 0.0007642786949872971 ``` **outcome:** @@ -43,7 +43,7 @@ **duration:** ```python - 2.108105033636093 + 2.111914704553783 ``` **outcome:** @@ -96,7 +96,7 @@ **duration:** ```python - 0.0005000624805688858 + 0.0006133858114480972 ``` **outcome:** @@ -114,7 +114,7 @@ **duration:** ```python - 0.0002693338319659233 + 0.00035681668668985367 ``` **outcome:** @@ -128,7 +128,7 @@ **duration:** ```python - 0.002435513772070408 + 0.0025765858590602875 ``` **outcome:** @@ -196,7 +196,7 @@ **duration:** ```python - 0.00020056776702404022 + 0.00023950450122356415 ``` **outcome:** @@ -214,7 +214,7 @@ **duration:** ```python - 0.00014724303036928177 + 0.00016887858510017395 ``` **outcome:** @@ -228,7 +228,7 @@ **duration:** ```python - 0.0012777755036950111 + 0.0014593321830034256 ``` **outcome:** @@ -278,7 +278,7 @@ **duration:** ```python - 0.00018990319222211838 + 0.00023538805544376373 ``` **outcome:** @@ -296,7 +296,7 @@ **duration:** ```python - 0.00013969279825687408 + 0.00019162986427545547 ``` **outcome:** @@ -310,7 +310,7 @@ **duration:** ```python - 2.0014940658584237 + 2.001705374568701 ``` **outcome:** @@ -367,7 +367,7 @@ **duration:** ```python - 0.00025108084082603455 + 0.0003578662872314453 ``` **outcome:** @@ -385,7 +385,7 @@ **duration:** ```python - 0.0001677628606557846 + 0.00018780305981636047 ``` **outcome:** @@ -399,7 +399,7 @@ **duration:** ```python - 6.002438658848405 + 6.002434962429106 ``` **outcome:** @@ -471,7 +471,7 @@ **duration:** ```python - 0.0002518538385629654 + 0.00023432914167642593 ``` **outcome:** @@ -489,7 +489,7 @@ **duration:** ```python - 0.00017046090215444565 + 0.0001651989296078682 ``` **outcome:** @@ -503,7 +503,7 @@ **duration:** ```python - 0.002115899696946144 + 0.0019596312195062637 ``` **outcome:** @@ -556,7 +556,7 @@ **duration:** ```python - 0.00019158143550157547 + 0.0001671966165304184 ``` **outcome:** @@ -584,7 +584,7 @@ **duration:** ```python - 0.00016258656978607178 + 0.000208989717066288 ``` **outcome:** @@ -598,7 +598,7 @@ **duration:** ```python - 0.0005932888016104698 + 0.0006750449538230896 ``` **outcome:** @@ -612,7 +612,7 @@ **duration:** ```python - 0.00014672242105007172 + 0.00015596672892570496 ``` **outcome:** @@ -630,7 +630,7 @@ **duration:** ```python - 0.00016243010759353638 + 0.00019463803619146347 ``` **outcome:** @@ -644,7 +644,7 @@ **duration:** ```python - 0.0014676405116915703 + 0.0015617609024047852 ``` **outcome:** @@ -658,7 +658,7 @@ **duration:** ```python - 0.00013318564742803574 + 0.00014205649495124817 ``` **outcome:** @@ -676,7 +676,7 @@ **duration:** ```python - 0.00016610976308584213 + 0.0002718130126595497 ``` **outcome:** @@ -690,7 +690,7 @@ **duration:** ```python - 5.00058317091316 + 5.000807790085673 ``` **outcome:** @@ -704,7 +704,7 @@ **duration:** ```python - 0.00018038321286439896 + 0.00019267108291387558 ``` **outcome:** @@ -722,7 +722,7 @@ **duration:** ```python - 0.0001596994698047638 + 0.00014871452003717422 ``` **outcome:** @@ -736,7 +736,7 @@ **duration:** ```python - 0.001120666041970253 + 0.0010725082829594612 ``` **outcome:** @@ -750,7 +750,7 @@ **duration:** ```python - 0.00014097988605499268 + 0.00012002885341644287 ``` **outcome:** @@ -768,7 +768,7 @@ **duration:** ```python - 0.00013987906277179718 + 0.00013439077883958817 ``` **outcome:** @@ -782,7 +782,7 @@ **duration:** ```python - 0.0011013215407729149 + 0.0009877951815724373 ``` **outcome:** @@ -796,7 +796,7 @@ **duration:** ```python - 0.0001314934343099594 + 0.00011709798127412796 ``` **outcome:** @@ -814,7 +814,7 @@ **duration:** ```python - 0.00013735145330429077 + 0.0001297714188694954 ``` **outcome:** @@ -828,7 +828,7 @@ **duration:** ```python - 0.001118420623242855 + 0.0010321307927370071 ``` **outcome:** @@ -842,7 +842,7 @@ **duration:** ```python - 0.00022923387587070465 + 0.00021640397608280182 ``` **outcome:** diff --git a/markdown/pytest-report.json b/markdown/pytest-report.json index f47401a82..106c99a26 100644 --- a/markdown/pytest-report.json +++ b/markdown/pytest-report.json @@ -1 +1 @@ -{"created": 1756129481.843142, "duration": 26.085079431533813, "exitcode": 1, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"failed": 6, "passed": 6, "total": 12, "collected": 12}, "collectors": [{"nodeid": "", "outcome": "passed", "result": [{"nodeid": "tests/test_utils_hastepics.py", "type": "Module"}]}, {"nodeid": "tests/test_utils_hastepics.py", "outcome": "passed", "result": [{"nodeid": "tests/test_utils_hastepics.py::test_get_pv_connect_false_and_true", "type": "Function", "lineno": 29}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_init_strips_suffixes", "type": "Function", "lineno": 44}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_invalid_name_raises", "type": "Function", "lineno": 74}, {"nodeid": "tests/test_utils_hastepics.py::test_disabled_removed_relative_to_upstream", "type": "Function", "lineno": 79}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_init_list_and_extras_build_handles_eagerly", "type": "Function", "lineno": 100}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_val_connect_via_cache", "type": "Function", "lineno": 130}, {"nodeid": "tests/test_utils_hastepics.py::test_speedup_get_pv", "type": "Function", "lineno": 149}, {"nodeid": "tests/test_utils_hastepics.py::test_speedup_motor_instantiation", "type": "Function", "lineno": 166}, {"nodeid": "tests/test_utils_hastepics.py::test_speedup_motor_PV", "type": "Function", "lineno": 183}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_init_list_attrs_created", "type": "Function", "lineno": 205}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_extras_attrs_correct", "type": "Function", "lineno": 216}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_callbacks_empty", "type": "Function", "lineno": 228}]}], "tests": [{"nodeid": "tests/test_utils_hastepics.py::test_get_pv_connect_false_and_true", "lineno": 29, "outcome": "failed", "keywords": ["test_get_pv_connect_false_and_true", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.0008180169388651848, "outcome": "passed"}, "call": {"duration": 2.108105033636093, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_hastepics.py", "lineno": 42, "message": "AssertionError: assert False\n + where False = .connected"}, "traceback": [{"path": "tests/test_utils_hastepics.py", "lineno": 42, "message": "AssertionError"}], "longrepr": "def test_get_pv_connect_false_and_true():\n name = \"TEST:SIM:VAL\"\n assert not _in_pv_cache(name)\n \n pv = get_pv(name, connect=False)\n assert isinstance(pv, PV)\n \n assert _in_pv_cache(name), \"PV should be in _PVcache_ after get_pv(connect=False)\"\n assert not pv.connected\n \n # Now actually connect\n pv2 = get_pv(name, connect=True, timeout=2.0)\n> assert pv2.connected\nE AssertionError: assert False\nE + where False = .connected\n\ntests/test_utils_hastepics.py:42: AssertionError"}, "teardown": {"duration": 0.0005000624805688858, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_init_strips_suffixes", "lineno": 44, "outcome": "failed", "keywords": ["test_motor_init_strips_suffixes", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.0002693338319659233, "outcome": "passed"}, "call": {"duration": 0.002435513772070408, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_hastepics.py", "lineno": 66, "message": "AssertionError: assert 'TEST:SIM:M1.' == 'TEST:SIM:M1'\n \n - TEST:SIM:M1\n + TEST:SIM:M1.\n ? +"}, "traceback": [{"path": "tests/test_utils_hastepics.py", "lineno": 66, "message": "AssertionError"}], "longrepr": "def test_motor_init_strips_suffixes():\n m1 = Motor(\"TEST:SIM:M1.VAL\")\n \n # Afficher les attributs de base de epics.Motor\n print(\"Attributes of epics.Motor:\")\n print(\" _init_list:\", getattr(epics.Motor, \"_init_list\", []))\n print(\" _extras:\", getattr(epics.Motor, \"_extras\", {}))\n \n # Afficher les attributs de ton objet Motor\n print(\"\\nAttributes of Motor (custom):\")\n print(\" _init_list:\", getattr(m1, \"_init_list\", []))\n print(\" _extras:\", getattr(m1, \"_extras\", {}))\n \n # Afficher tous les attributs de epics.Motor (via dir())\n print(\"\\nAll attributes of epics.Motor:\")\n print(dir(epics.Motor))\n \n # Afficher tous les attributs de ta classe Motor (via dir())\n print(\"\\nAll attributes of Motor (custom):\")\n print(dir(m1))\n \n> assert m1._prefix == \"TEST:SIM:M1\"\nE AssertionError: assert 'TEST:SIM:M1.' == 'TEST:SIM:M1'\nE \nE - TEST:SIM:M1\nE + TEST:SIM:M1.\nE ? +\n\ntests/test_utils_hastepics.py:66: AssertionError"}, "teardown": {"duration": 0.00020056776702404022, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_invalid_name_raises", "lineno": 74, "outcome": "passed", "keywords": ["test_motor_invalid_name_raises", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.00016258656978607178, "outcome": "passed"}, "call": {"duration": 0.0005932888016104698, "outcome": "passed"}, "teardown": {"duration": 0.00014672242105007172, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_disabled_removed_relative_to_upstream", "lineno": 79, "outcome": "failed", "keywords": ["test_disabled_removed_relative_to_upstream", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.00014724303036928177, "outcome": "passed"}, "call": {"duration": 0.0012777755036950111, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_hastepics.py", "lineno": 87, "message": "AssertionError: _extras is empty; expected at least one entry\nassert 0 > 0\n + where 0 = len({})"}, "traceback": [{"path": "tests/test_utils_hastepics.py", "lineno": 87, "message": "AssertionError"}], "longrepr": "def test_disabled_removed_relative_to_upstream():\n m = Motor(\"TEST:SIM:M7\")\n \n init_list = tuple(getattr(m, \"_init_list\", ()))\n extras = dict(getattr(m, \"_extras\", {}))\n \n assert len(init_list) > 0, \"_init_list is empty; expected at least one field\"\n> assert len(extras) > 0, \"_extras is empty; expected at least one entry\"\nE AssertionError: _extras is empty; expected at least one entry\nE assert 0 > 0\nE + where 0 = len({})\n\ntests/test_utils_hastepics.py:87: AssertionError"}, "teardown": {"duration": 0.00018990319222211838, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_init_list_and_extras_build_handles_eagerly", "lineno": 100, "outcome": "passed", "keywords": ["test_motor_init_list_and_extras_build_handles_eagerly", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.00016243010759353638, "outcome": "passed"}, "call": {"duration": 0.0014676405116915703, "outcome": "passed"}, "teardown": {"duration": 0.00013318564742803574, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_val_connect_via_cache", "lineno": 130, "outcome": "failed", "keywords": ["test_motor_val_connect_via_cache", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.00013969279825687408, "outcome": "passed"}, "call": {"duration": 2.0014940658584237, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_hastepics.py", "lineno": 145, "message": "AssertionError: assert False\n + where False = wait_for_connection(timeout=2.0)\n + where wait_for_connection = .wait_for_connection"}, "traceback": [{"path": "tests/test_utils_hastepics.py", "lineno": 145, "message": "AssertionError"}], "longrepr": "def test_motor_val_connect_via_cache():\n motor_prefix = \"TEST:SIM:M5\"\n pvname = f\"{motor_prefix}.VAL\"\n \n assert not _in_pv_cache(pvname)\n \n m = Motor(motor_prefix)\n \n assert _in_pv_cache(pvname), f\"{pvname} should be cached after Motor()\"\n \n pv = _get_cached_pv(pvname)\n assert pv is not None\n assert not pv.connected\n \n> assert pv.wait_for_connection(timeout=2.0)\nE AssertionError: assert False\nE + where False = wait_for_connection(timeout=2.0)\nE + where wait_for_connection = .wait_for_connection\n\ntests/test_utils_hastepics.py:145: AssertionError"}, "teardown": {"duration": 0.00025108084082603455, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_speedup_get_pv", "lineno": 149, "outcome": "passed", "keywords": ["test_speedup_get_pv", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.00016610976308584213, "outcome": "passed"}, "call": {"duration": 5.00058317091316, "outcome": "passed"}, "teardown": {"duration": 0.00018038321286439896, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_speedup_motor_instantiation", "lineno": 166, "outcome": "failed", "keywords": ["test_speedup_motor_instantiation", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.0001677628606557846, "outcome": "passed"}, "call": {"duration": 6.002438658848405, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/motor.py", "lineno": 254, "message": "epics.motor.MotorException: TEST:SIM:M8 is not an Epics Motor"}, "traceback": [{"path": "tests/test_utils_hastepics.py", "lineno": 174, "message": ""}, {"path": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/motor.py", "lineno": 254, "message": "MotorException"}], "longrepr": "def test_speedup_motor_instantiation():\n \"\"\"On exige juste pas de grosse r\u00e9gression vs EPICS.\"\"\"\n t0 = time.perf_counter()\n Motor(\"TEST:SIM:M6\")\n t1 = time.perf_counter()\n \n t2 = time.perf_counter()\n> epics.Motor(\"TEST:SIM:M8\")\n\ntests/test_utils_hastepics.py:174: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = , name = 'TEST:SIM:M8', timeout = 3.0\n\n def __init__(self, name=None, timeout=3.0):\n if name is None:\n raise MotorException(\"must supply motor name\")\n \n if name.endswith('.VAL'):\n name = name[:-4]\n if name.endswith('.'):\n name = name[:-1]\n \n self._prefix = name\n device.Device.__init__(self, name, delim='.',\n attrs=self._init_list,\n timeout=timeout)\n # make sure this is really a motor!\n rectype = self.get('RTYP')\n if rectype != 'motor':\n> raise MotorException(\"%s is not an Epics Motor\" % name)\nE epics.motor.MotorException: TEST:SIM:M8 is not an Epics Motor\n\n/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/motor.py:254: MotorException"}, "teardown": {"duration": 0.0002518538385629654, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_speedup_motor_PV", "lineno": 183, "outcome": "failed", "keywords": ["test_speedup_motor_PV", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.00017046090215444565, "outcome": "passed"}, "call": {"duration": 0.002115899696946144, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_hastepics.py", "lineno": 196, "message": "AssertionError: assert False\n + where False = .connected"}, "traceback": [{"path": "tests/test_utils_hastepics.py", "lineno": 196, "message": "AssertionError"}], "longrepr": "def test_speedup_motor_PV():\n # baseline EPICS\n m_slow = Motor(\"TEST:SIM:M14\")\n t0 = time.perf_counter()\n pv_slow = m_slow.PV(\"VAL\", connect=True)\n t1 = time.perf_counter()\n \n m_fast = Motor(\"TEST:SIM:M15\")\n t2 = time.perf_counter()\n pv_fast = m_fast.PV(\"VAL\", connect=False)\n t3 = time.perf_counter()\n \n> assert pv_slow.connected\nE AssertionError: assert False\nE + where False = .connected\n\ntests/test_utils_hastepics.py:196: AssertionError"}, "teardown": {"duration": 0.00019158143550157547, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_init_list_attrs_created", "lineno": 205, "outcome": "passed", "keywords": ["test_motor_init_list_attrs_created", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.0001596994698047638, "outcome": "passed"}, "call": {"duration": 0.001120666041970253, "outcome": "passed"}, "teardown": {"duration": 0.00014097988605499268, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_extras_attrs_correct", "lineno": 216, "outcome": "passed", "keywords": ["test_motor_extras_attrs_correct", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.00013987906277179718, "outcome": "passed"}, "call": {"duration": 0.0011013215407729149, "outcome": "passed"}, "teardown": {"duration": 0.0001314934343099594, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_callbacks_empty", "lineno": 228, "outcome": "passed", "keywords": ["test_motor_callbacks_empty", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.00013735145330429077, "outcome": "passed"}, "call": {"duration": 0.001118420623242855, "outcome": "passed"}, "teardown": {"duration": 0.00022923387587070465, "outcome": "passed"}}], "warnings": [{"message": "invalid escape sequence \\-", "category": "DeprecationWarning", "when": "collect", "filename": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/bsread/h5.py", "lineno": 207}, {"message": "The module numpy.dual is deprecated. Instead of using dual, use the functions directly from numpy or scipy.", "category": "DeprecationWarning", "when": "collect", "filename": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/scipy/fft/__init__.py", "lineno": 97}]} \ No newline at end of file +{"created": 1756129970.6098907, "duration": 26.528825759887695, "exitcode": 1, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"failed": 6, "passed": 6, "total": 12, "collected": 12}, "collectors": [{"nodeid": "", "outcome": "passed", "result": [{"nodeid": "tests/test_utils_hastepics.py", "type": "Module"}]}, {"nodeid": "tests/test_utils_hastepics.py", "outcome": "passed", "result": [{"nodeid": "tests/test_utils_hastepics.py::test_get_pv_connect_false_and_true", "type": "Function", "lineno": 29}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_init_strips_suffixes", "type": "Function", "lineno": 44}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_invalid_name_raises", "type": "Function", "lineno": 74}, {"nodeid": "tests/test_utils_hastepics.py::test_disabled_removed_relative_to_upstream", "type": "Function", "lineno": 79}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_init_list_and_extras_build_handles_eagerly", "type": "Function", "lineno": 100}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_val_connect_via_cache", "type": "Function", "lineno": 130}, {"nodeid": "tests/test_utils_hastepics.py::test_speedup_get_pv", "type": "Function", "lineno": 149}, {"nodeid": "tests/test_utils_hastepics.py::test_speedup_motor_instantiation", "type": "Function", "lineno": 166}, {"nodeid": "tests/test_utils_hastepics.py::test_speedup_motor_PV", "type": "Function", "lineno": 183}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_init_list_attrs_created", "type": "Function", "lineno": 205}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_extras_attrs_correct", "type": "Function", "lineno": 216}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_callbacks_empty", "type": "Function", "lineno": 228}]}], "tests": [{"nodeid": "tests/test_utils_hastepics.py::test_get_pv_connect_false_and_true", "lineno": 29, "outcome": "failed", "keywords": ["test_get_pv_connect_false_and_true", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.0007642786949872971, "outcome": "passed"}, "call": {"duration": 2.111914704553783, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_hastepics.py", "lineno": 42, "message": "AssertionError: assert False\n + where False = .connected"}, "traceback": [{"path": "tests/test_utils_hastepics.py", "lineno": 42, "message": "AssertionError"}], "longrepr": "def test_get_pv_connect_false_and_true():\n name = \"TEST:SIM:VAL\"\n assert not _in_pv_cache(name)\n \n pv = get_pv(name, connect=False)\n assert isinstance(pv, PV)\n \n assert _in_pv_cache(name), \"PV should be in _PVcache_ after get_pv(connect=False)\"\n assert not pv.connected\n \n # Now actually connect\n pv2 = get_pv(name, connect=True, timeout=2.0)\n> assert pv2.connected\nE AssertionError: assert False\nE + where False = .connected\n\ntests/test_utils_hastepics.py:42: AssertionError"}, "teardown": {"duration": 0.0006133858114480972, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_init_strips_suffixes", "lineno": 44, "outcome": "failed", "keywords": ["test_motor_init_strips_suffixes", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.00035681668668985367, "outcome": "passed"}, "call": {"duration": 0.0025765858590602875, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_hastepics.py", "lineno": 66, "message": "AssertionError: assert 'TEST:SIM:M1.' == 'TEST:SIM:M1'\n \n - TEST:SIM:M1\n + TEST:SIM:M1.\n ? +"}, "traceback": [{"path": "tests/test_utils_hastepics.py", "lineno": 66, "message": "AssertionError"}], "longrepr": "def test_motor_init_strips_suffixes():\n m1 = Motor(\"TEST:SIM:M1.VAL\")\n \n # Afficher les attributs de base de epics.Motor\n print(\"Attributes of epics.Motor:\")\n print(\" _init_list:\", getattr(epics.Motor, \"_init_list\", []))\n print(\" _extras:\", getattr(epics.Motor, \"_extras\", {}))\n \n # Afficher les attributs de ton objet Motor\n print(\"\\nAttributes of Motor (custom):\")\n print(\" _init_list:\", getattr(m1, \"_init_list\", []))\n print(\" _extras:\", getattr(m1, \"_extras\", {}))\n \n # Afficher tous les attributs de epics.Motor (via dir())\n print(\"\\nAll attributes of epics.Motor:\")\n print(dir(epics.Motor))\n \n # Afficher tous les attributs de ta classe Motor (via dir())\n print(\"\\nAll attributes of Motor (custom):\")\n print(dir(m1))\n \n> assert m1._prefix == \"TEST:SIM:M1\"\nE AssertionError: assert 'TEST:SIM:M1.' == 'TEST:SIM:M1'\nE \nE - TEST:SIM:M1\nE + TEST:SIM:M1.\nE ? +\n\ntests/test_utils_hastepics.py:66: AssertionError"}, "teardown": {"duration": 0.00023950450122356415, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_invalid_name_raises", "lineno": 74, "outcome": "passed", "keywords": ["test_motor_invalid_name_raises", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.000208989717066288, "outcome": "passed"}, "call": {"duration": 0.0006750449538230896, "outcome": "passed"}, "teardown": {"duration": 0.00015596672892570496, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_disabled_removed_relative_to_upstream", "lineno": 79, "outcome": "failed", "keywords": ["test_disabled_removed_relative_to_upstream", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.00016887858510017395, "outcome": "passed"}, "call": {"duration": 0.0014593321830034256, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_hastepics.py", "lineno": 87, "message": "AssertionError: _extras is empty; expected at least one entry\nassert 0 > 0\n + where 0 = len({})"}, "traceback": [{"path": "tests/test_utils_hastepics.py", "lineno": 87, "message": "AssertionError"}], "longrepr": "def test_disabled_removed_relative_to_upstream():\n m = Motor(\"TEST:SIM:M7\")\n \n init_list = tuple(getattr(m, \"_init_list\", ()))\n extras = dict(getattr(m, \"_extras\", {}))\n \n assert len(init_list) > 0, \"_init_list is empty; expected at least one field\"\n> assert len(extras) > 0, \"_extras is empty; expected at least one entry\"\nE AssertionError: _extras is empty; expected at least one entry\nE assert 0 > 0\nE + where 0 = len({})\n\ntests/test_utils_hastepics.py:87: AssertionError"}, "teardown": {"duration": 0.00023538805544376373, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_init_list_and_extras_build_handles_eagerly", "lineno": 100, "outcome": "passed", "keywords": ["test_motor_init_list_and_extras_build_handles_eagerly", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.00019463803619146347, "outcome": "passed"}, "call": {"duration": 0.0015617609024047852, "outcome": "passed"}, "teardown": {"duration": 0.00014205649495124817, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_val_connect_via_cache", "lineno": 130, "outcome": "failed", "keywords": ["test_motor_val_connect_via_cache", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.00019162986427545547, "outcome": "passed"}, "call": {"duration": 2.001705374568701, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_hastepics.py", "lineno": 145, "message": "AssertionError: assert False\n + where False = wait_for_connection(timeout=2.0)\n + where wait_for_connection = .wait_for_connection"}, "traceback": [{"path": "tests/test_utils_hastepics.py", "lineno": 145, "message": "AssertionError"}], "longrepr": "def test_motor_val_connect_via_cache():\n motor_prefix = \"TEST:SIM:M5\"\n pvname = f\"{motor_prefix}.VAL\"\n \n assert not _in_pv_cache(pvname)\n \n m = Motor(motor_prefix)\n \n assert _in_pv_cache(pvname), f\"{pvname} should be cached after Motor()\"\n \n pv = _get_cached_pv(pvname)\n assert pv is not None\n assert not pv.connected\n \n> assert pv.wait_for_connection(timeout=2.0)\nE AssertionError: assert False\nE + where False = wait_for_connection(timeout=2.0)\nE + where wait_for_connection = .wait_for_connection\n\ntests/test_utils_hastepics.py:145: AssertionError"}, "teardown": {"duration": 0.0003578662872314453, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_speedup_get_pv", "lineno": 149, "outcome": "passed", "keywords": ["test_speedup_get_pv", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.0002718130126595497, "outcome": "passed"}, "call": {"duration": 5.000807790085673, "outcome": "passed"}, "teardown": {"duration": 0.00019267108291387558, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_speedup_motor_instantiation", "lineno": 166, "outcome": "failed", "keywords": ["test_speedup_motor_instantiation", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.00018780305981636047, "outcome": "passed"}, "call": {"duration": 6.002434962429106, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/motor.py", "lineno": 254, "message": "epics.motor.MotorException: TEST:SIM:M8 is not an Epics Motor"}, "traceback": [{"path": "tests/test_utils_hastepics.py", "lineno": 174, "message": ""}, {"path": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/motor.py", "lineno": 254, "message": "MotorException"}], "longrepr": "def test_speedup_motor_instantiation():\n \"\"\"On exige juste pas de grosse r\u00e9gression vs EPICS.\"\"\"\n t0 = time.perf_counter()\n Motor(\"TEST:SIM:M6\")\n t1 = time.perf_counter()\n \n t2 = time.perf_counter()\n> epics.Motor(\"TEST:SIM:M8\")\n\ntests/test_utils_hastepics.py:174: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = , name = 'TEST:SIM:M8', timeout = 3.0\n\n def __init__(self, name=None, timeout=3.0):\n if name is None:\n raise MotorException(\"must supply motor name\")\n \n if name.endswith('.VAL'):\n name = name[:-4]\n if name.endswith('.'):\n name = name[:-1]\n \n self._prefix = name\n device.Device.__init__(self, name, delim='.',\n attrs=self._init_list,\n timeout=timeout)\n # make sure this is really a motor!\n rectype = self.get('RTYP')\n if rectype != 'motor':\n> raise MotorException(\"%s is not an Epics Motor\" % name)\nE epics.motor.MotorException: TEST:SIM:M8 is not an Epics Motor\n\n/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/motor.py:254: MotorException"}, "teardown": {"duration": 0.00023432914167642593, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_speedup_motor_PV", "lineno": 183, "outcome": "failed", "keywords": ["test_speedup_motor_PV", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.0001651989296078682, "outcome": "passed"}, "call": {"duration": 0.0019596312195062637, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_hastepics.py", "lineno": 196, "message": "AssertionError: assert False\n + where False = .connected"}, "traceback": [{"path": "tests/test_utils_hastepics.py", "lineno": 196, "message": "AssertionError"}], "longrepr": "def test_speedup_motor_PV():\n # baseline EPICS\n m_slow = Motor(\"TEST:SIM:M14\")\n t0 = time.perf_counter()\n pv_slow = m_slow.PV(\"VAL\", connect=True)\n t1 = time.perf_counter()\n \n m_fast = Motor(\"TEST:SIM:M15\")\n t2 = time.perf_counter()\n pv_fast = m_fast.PV(\"VAL\", connect=False)\n t3 = time.perf_counter()\n \n> assert pv_slow.connected\nE AssertionError: assert False\nE + where False = .connected\n\ntests/test_utils_hastepics.py:196: AssertionError"}, "teardown": {"duration": 0.0001671966165304184, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_init_list_attrs_created", "lineno": 205, "outcome": "passed", "keywords": ["test_motor_init_list_attrs_created", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.00014871452003717422, "outcome": "passed"}, "call": {"duration": 0.0010725082829594612, "outcome": "passed"}, "teardown": {"duration": 0.00012002885341644287, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_extras_attrs_correct", "lineno": 216, "outcome": "passed", "keywords": ["test_motor_extras_attrs_correct", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.00013439077883958817, "outcome": "passed"}, "call": {"duration": 0.0009877951815724373, "outcome": "passed"}, "teardown": {"duration": 0.00011709798127412796, "outcome": "passed"}}, {"nodeid": "tests/test_utils_hastepics.py::test_motor_callbacks_empty", "lineno": 228, "outcome": "passed", "keywords": ["test_motor_callbacks_empty", "test_utils_hastepics.py", "tests", "slic", ""], "setup": {"duration": 0.0001297714188694954, "outcome": "passed"}, "call": {"duration": 0.0010321307927370071, "outcome": "passed"}, "teardown": {"duration": 0.00021640397608280182, "outcome": "passed"}}], "warnings": [{"message": "invalid escape sequence \\-", "category": "DeprecationWarning", "when": "collect", "filename": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/bsread/h5.py", "lineno": 207}, {"message": "The module numpy.dual is deprecated. Instead of using dual, use the functions directly from numpy or scipy.", "category": "DeprecationWarning", "when": "collect", "filename": "/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/scipy/fft/__init__.py", "lineno": 97}]} \ No newline at end of file