@@ -109,18 +109,41 @@ public static void GetPythonHomeDefault()
109109 [ Test ]
110110 public void SetPythonHome ( )
111111 {
112+ // We needs to ensure that engine was started and shutdown at least once before setting dummy home.
113+ // Otherwise engine will not run with dummy path with random problem.
114+ if ( ! PythonEngine . IsInitialized )
115+ {
116+ PythonEngine . Initialize ( ) ;
117+ }
118+
119+ PythonEngine . Shutdown ( ) ;
120+
121+ var pythonHomeBackup = PythonEngine . PythonHome ;
122+
112123 var pythonHome = "/dummypath/" ;
113124
114125 PythonEngine . PythonHome = pythonHome ;
115126 PythonEngine . Initialize ( ) ;
116127
117- Assert . AreEqual ( pythonHome , PythonEngine . PythonHome ) ;
118128 PythonEngine . Shutdown ( ) ;
129+
130+ // Restoring valid pythonhome.
131+ PythonEngine . PythonHome = pythonHomeBackup ;
119132 }
120133
121134 [ Test ]
122135 public void SetPythonHomeTwice ( )
123136 {
137+ // We needs to ensure that engine was started and shutdown at least once before setting dummy home.
138+ // Otherwise engine will not run with dummy path with random problem.
139+ if ( ! PythonEngine . IsInitialized )
140+ {
141+ PythonEngine . Initialize ( ) ;
142+ }
143+ PythonEngine . Shutdown ( ) ;
144+
145+ var pythonHomeBackup = PythonEngine . PythonHome ;
146+
124147 var pythonHome = "/dummypath/" ;
125148
126149 PythonEngine . PythonHome = "/dummypath2/" ;
@@ -129,18 +152,29 @@ public void SetPythonHomeTwice()
129152
130153 Assert . AreEqual ( pythonHome , PythonEngine . PythonHome ) ;
131154 PythonEngine . Shutdown ( ) ;
155+
156+ PythonEngine . PythonHome = pythonHomeBackup ;
132157 }
133158
134159 [ Test ]
135160 public void SetProgramName ( )
136161 {
162+ if ( PythonEngine . IsInitialized )
163+ {
164+ PythonEngine . Shutdown ( ) ;
165+ }
166+
167+ var programNameBackup = PythonEngine . ProgramName ;
168+
137169 var programName = "FooBar" ;
138170
139171 PythonEngine . ProgramName = programName ;
140172 PythonEngine . Initialize ( ) ;
141173
142174 Assert . AreEqual ( programName , PythonEngine . ProgramName ) ;
143175 PythonEngine . Shutdown ( ) ;
176+
177+ PythonEngine . ProgramName = programNameBackup ;
144178 }
145179
146180 [ Test ]
@@ -156,7 +190,7 @@ public void SetPythonPath()
156190 string path = PythonEngine . PythonPath ;
157191 PythonEngine . Shutdown ( ) ;
158192
159- PythonEngine . ProgramName = path ;
193+ PythonEngine . PythonPath = path ;
160194 PythonEngine . Initialize ( ) ;
161195
162196 Assert . AreEqual ( path , PythonEngine . PythonPath ) ;
@@ -171,7 +205,6 @@ public void SetPythonPathExceptionOn27()
171205 Assert . Pass ( ) ;
172206 }
173207
174- // Get previous path to avoid crashing Python
175208 PythonEngine . Initialize ( ) ;
176209 string path = PythonEngine . PythonPath ;
177210 PythonEngine . Shutdown ( ) ;
0 commit comments