Skip to content

Commit da5b4cc

Browse files
authored
Merge pull request #101 from espressif/fix/serial_port_occupied_when_init_failed
Fix/serial port occupied when init failed
2 parents 6f245aa + 40b4430 commit da5b4cc

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

pytest-embedded-serial/pytest_embedded_serial/serial.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,19 +51,23 @@ def __init__(self, pexpect_proc: PexpectProcess, port: Union[str, pyserial.Seria
5151
self.port = self.proc.port
5252

5353
self.pexpect_proc = pexpect_proc
54-
self.occupied_ports[self.port] = None
55-
logging.debug(f'occupied {self.port}')
5654

5755
self._post_init()
5856

5957
self._start()
6058

59+
self._finalize_init()
60+
6161
def _post_init(self):
6262
pass
6363

6464
def _start(self):
6565
pass
6666

67+
def _finalize_init(self):
68+
self.occupied_ports[self.port] = None
69+
logging.debug(f'occupied {self.port}')
70+
6771
def _forward_io(self, pexpect_proc: PexpectProcess) -> None:
6872
while self.proc.is_open:
6973
try:

pytest-embedded/pytest_embedded/plugin.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -336,13 +336,18 @@ def wrapper(*args, **kwargs):
336336
def _close_or_terminate(obj):
337337
try:
338338
obj.close()
339-
except OSError:
339+
except OSError as e:
340+
logging.debug(str(e))
340341
pass
341342
except AttributeError:
342343
try:
343344
obj.terminate()
344-
except AttributeError:
345+
except AttributeError as e:
346+
logging.debug(str(e))
345347
pass
348+
except Exception as e:
349+
logging.debug(str(e))
350+
pass # swallow up all error
346351
finally:
347352
del obj
348353

requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
# This is an requirements.txt for extra dependencies.
1+
# This is a requirements.txt for extra dependencies.
22
# To install all packages, please run `bash foreach.sh install`
3+
cryptography==37.0.2
34

45
# testing
56
pytest-cov

0 commit comments

Comments
 (0)