@@ -38,6 +38,8 @@ def fake_open(file, mode="r", *args, **kwargs):
3838 return io .BytesIO ()
3939 elif "r" in mode :
4040 return io .BytesIO (b"fake zip content" )
41+ if isinstance (file , str ) and file .startswith ("/dev/pts/" ):
42+ return io .BytesIO () if "b" in mode else io .StringIO ()
4143 return original_open (file , mode , * args , ** kwargs )
4244
4345 # Mock file system and subprocess operations
@@ -47,7 +49,7 @@ def fake_open(file, mode="r", *args, **kwargs):
4749 monkeypatch .setattr ("subprocess.Popen" , lambda * a , ** k : DummyProc ())
4850 monkeypatch .setattr ("os.mkdir" , lambda path : None )
4951 monkeypatch .setattr ("os.path.exists" , lambda path : True )
50- monkeypatch .setattr ("shutil.rmtree" , lambda path : None )
52+ monkeypatch .setattr ("shutil.rmtree" , lambda path , ignore_errors = False : None )
5153 monkeypatch .setattr (
5254 "zipfile.ZipFile" ,
5355 lambda * a , ** k : type (
@@ -58,7 +60,8 @@ def fake_open(file, mode="r", *args, **kwargs):
5860 )
5961 monkeypatch .setattr ("base64.b64decode" , lambda s : b"print('hello')" )
6062 monkeypatch .setattr (
61- "manager.manager.manager.Manager.unpause_sim" , lambda self : None
63+ "robotics_application_manager.manager.manager.Manager.unpause_sim" ,
64+ lambda self : None ,
6265 )
6366 # Mock linter to return no errors
6467 manager .linter .evaluate_code = lambda code , ros_version : ""
@@ -85,6 +88,8 @@ def fake_open(file, mode="r", *args, **kwargs):
8588 import io
8689
8790 return io .BytesIO ()
91+ if isinstance (file , str ) and file .startswith ("/dev/pts/" ):
92+ return io .BytesIO () if "b" in mode else io .StringIO ()
8893 return original_open (file , mode , * args , ** kwargs )
8994
9095 monkeypatch .setattr ("builtins.open" , fake_open )
@@ -93,7 +98,7 @@ def fake_open(file, mode="r", *args, **kwargs):
9398 monkeypatch .setattr ("subprocess.Popen" , lambda * a , ** k : None )
9499 monkeypatch .setattr ("os.mkdir" , lambda path : None )
95100 monkeypatch .setattr ("os.path.exists" , lambda path : True )
96- monkeypatch .setattr ("shutil.rmtree" , lambda path : None )
101+ monkeypatch .setattr ("shutil.rmtree" , lambda path , ignore_errors = False : None )
97102 monkeypatch .setattr (
98103 "zipfile.ZipFile" ,
99104 lambda * a , ** k : type (
@@ -104,7 +109,8 @@ def fake_open(file, mode="r", *args, **kwargs):
104109 )
105110 monkeypatch .setattr ("base64.b64decode" , lambda s : b"print('hello')" )
106111 monkeypatch .setattr (
107- "manager.manager.manager.Manager.unpause_sim" , lambda self : None
112+ "robotics_application_manager.manager.manager.Manager.unpause_sim" ,
113+ lambda self : None ,
108114 )
109115 # Mock linter to return no errors
110116 manager .linter .evaluate_code = lambda code , ros_version : ""
@@ -127,7 +133,7 @@ def test_on_run_application_corrupt_zip(manager, monkeypatch):
127133 monkeypatch .setattr ("os.path.exists" , lambda path : True )
128134 monkeypatch .setattr ("os.mkdir" , lambda path : None )
129135 monkeypatch .setattr ("os.listdir" , lambda path : ["0" , "1" , "2" ])
130- monkeypatch .setattr ("shutil.rmtree" , lambda path : None )
136+ monkeypatch .setattr ("shutil.rmtree" , lambda path , ignore_errors = False : None )
131137 # Mock open for app.zip to avoid FileNotFoundError
132138 original_open = builtins .open
133139
@@ -136,6 +142,8 @@ def fake_open(file, mode="r", *args, **kwargs):
136142 import io
137143
138144 return io .BytesIO ()
145+ if isinstance (file , str ) and file .startswith ("/dev/pts/" ):
146+ return io .BytesIO () if "b" in mode else io .StringIO ()
139147 return original_open (file , mode , * args , ** kwargs )
140148
141149 monkeypatch .setattr ("builtins.open" , fake_open )
@@ -153,7 +161,8 @@ def fake_open(file, mode="r", *args, **kwargs):
153161 )(),
154162 )
155163 monkeypatch .setattr (
156- "manager.manager.manager.Manager.unpause_sim" , lambda self : None
164+ "robotics_application_manager.manager.manager.Manager.unpause_sim" ,
165+ lambda self : None ,
157166 )
158167 manager .linter .evaluate_code = lambda code , ros_version : ""
159168 data = valid_app_data
0 commit comments