test_activate_operation_updates_active_users needs a review
I see this sometimes on my local tests
[gw5] [100%] PASSED tests/_test_msui/test_mscolab.py::Test_Mscolab::test_activate_operation_updates_active_users
Exception ignored in: <function WMSControlWidget.__del__ at 0x718a67ac9120>
Traceback (most recent call last):
File "/home/reimar/MAIN/MSS/mslib/msui/wms_control.py", line 550, in __del__
self.service_cache()
File "/home/reimar/MAIN/MSS/mslib/msui/wms_control.py", line 1455, in service_cache
files = [os.path.join(self.wms_cache, f) for f in os.listdir(self.wms_cache)]
^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] Datei oder Verzeichnis nicht gefunden: '/tmp/tmpnodr4uwv/msui/wms_cache/'
happens also sometimes here https://github.com/Open-MSS/MSS/actions/runs/11200358961/job/31133900608?pr=2554#step:6:1165
import os
class WMSControlWidget: def init(self, wms_cache): self.wms_cache = wms_cache os.makedirs(self.wms_cache, exist_ok=True) # Ensure the cache directory exists
def service_cache(self):
if os.path.exists(self.wms_cache):
files = [os.path.join(self.wms_cache, f) for f in os.listdir(self.wms_cache)]
# ... process files
else:
files = [] # Handle the case where the directory does not exist
def __del__(self):
# Consider removing any critical logic here or checking for existence
try:
self.service_cache()
except Exception as e:
# Log the exception if necessary
pass
Not each test is failing. On production I don't have seen that problem. We need to investigate why in this order of tests the problem occures and likly improve a test.
Hey @ReimarBauer , I could not reproduce the issue. Can you please help with this.
When I ran pytest test_mscolab.py I got these results
just a follow up mention @ReimarBauer can you look into this please!
This error happens randomly in parallel testing. It is not easy to catch.
Modify the service_cache method to check if the directory exists before trying to list its files.
import os
def service_cache(self): if os.path.exists(self.wms_cache) and os.path.isdir(self.wms_cache): files = [os.path.join(self.wms_cache, f) for f in os.listdir(self.wms_cache)] # proceed with your logic here else: print(f"Directory {self.wms_cache} does not exist.")
That is not the solution because the problem seems only to occure in the tests on parallel testing. I believe we need to find the test which is the reason for this.
We have to set wms_cache https://github.com/Open-MSS/MSS/blob/stable/tests/_test_msui/test_wms_control.py#L500
similiar as here https://github.com/Open-MSS/MSS/blob/stable/tests/_test_msui/test_wms_control.py#L69
On the MBP I got today
Failed: An unhandled message box popped up during your test!
E PyQt5.QtWidgets.QMessageBox.critical(): [call(<mslib.msui.wms_control.HSecWMSControlWidget object at 0x34be62950>, 'Web Map Service', "ERROR: Cannot delete file '/Users/reimarbauer/Library/Caches/msui/wms_cache/6a69a349092204e79ecfb3fabe12998a.png'. (<class 'FileNotFoundError'>: [Errno 2] No such file or directory: '/Users/reimarbauer/Library/Caches/msui/wms_cache/6a69a349092204e79ecfb3fabe12998a.png')")]
that looks like a test does not use a tmp dir. It is not clear yet if it is the same problem.
it is maybe fixed by https://github.com/Open-MSS/MSS/pull/2829
reopen when not