Skip to content

Commit

Permalink
fix: bad exception management (#10)
Browse files Browse the repository at this point in the history
  • Loading branch information
TheCrab13 authored Feb 8, 2024
1 parent 5f6ac04 commit f5cf7b9
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 23 deletions.
2 changes: 1 addition & 1 deletion pdbstore/cli/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ def run(self, *args: Any) -> ExitCode:
command.run(args[0][1:])
except Exception as exc:
if PDBStoreOutput.level_allowed(LEVEL_TRACE):
output.trace("\n".join(traceback.format_exception(exc)))
output.trace("\n".join(traceback.format_exception(*sys.exc_info())))
raise exc
return 0

Expand Down
29 changes: 18 additions & 11 deletions pdbstore/io/file.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import struct
import ntpath
import os
import struct
import uuid
from pathlib import Path

Expand Down Expand Up @@ -176,9 +176,9 @@ def extract_dbg_info(file_path: PathLike) -> Optional[Tuple[str, str]]:
pdb_filename = ntpath.basename(
code_view_entry.entry.PdbFileName.decode("utf-8")
)
if hasattr(code_view_entry.entry, 'Signature_Data5'):
if hasattr(code_view_entry.entry, "Signature_Data5"):
# recent pefile version
fields=(
fields = (
code_view_entry.entry.Signature_Data1,
code_view_entry.entry.Signature_Data2,
code_view_entry.entry.Signature_Data3,
Expand All @@ -189,23 +189,30 @@ def extract_dbg_info(file_path: PathLike) -> Optional[Tuple[str, str]]:
else:
# pragma: no cover
# old pefile version
Signature_Data4 = code_view_entry.entry.Signature_Data4[0]
Signature_Data5 = code_view_entry.entry.Signature_Data4[1]
Signature_Data6 = struct.unpack(
">Q", b"\0\0" + code_view_entry.entry.Signature_Data4[2:]
Signature_Data4 = code_view_entry.entry.Signature_Data4[ # pylint: disable=invalid-name
0
]
Signature_Data5 = code_view_entry.entry.Signature_Data4[ # pylint: disable=invalid-name
1
]
Signature_Data6 = struct.unpack( # pylint: disable=invalid-name
">Q",
b"\0\0"
+ code_view_entry.entry.Signature_Data4[ # pylint: disable=invalid-name
2:
],
)[0]

fields=(
fields = (
code_view_entry.entry.Signature_Data1,
code_view_entry.entry.Signature_Data2,
code_view_entry.entry.Signature_Data3,
Signature_Data4,
Signature_Data5,
Signature_Data6,
)
guid = (str(uuid.UUID(fields=fields))
.replace("-", "")
.upper()
guid = (
str(uuid.UUID(fields=fields)).replace("-", "").upper()
+ f"{code_view_entry.entry.Age:X}"
)
else:
Expand Down
7 changes: 4 additions & 3 deletions pdbstore/io/output.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import io
import os
import sys
import traceback
Expand Down Expand Up @@ -303,8 +302,10 @@ def error(self, msg: Union[BaseException, str, Dict[str, str]]) -> "PDBStoreOutp
Prints an error message.
"""
if self._pdbstore_output_level <= LEVEL_ERROR:
if isinstance(msg, BaseException): # pragma: no cover
lines = traceback.format_exception(msg)
if isinstance(msg, BaseException): # pragma: no cover
lines = traceback.format_exception(
type(msg), value=msg, tb=msg.__traceback__
)
exc_msg = ("\n".join(lines)).replace("\n", "\n ")
self._write_message(f"ERROR: {exc_msg}", Color.RED)
else:
Expand Down
10 changes: 3 additions & 7 deletions tests/unit/test_transaction_entry.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import importlib
import os
from unittest import mock
from pathlib import Path
from unittest import mock

import pytest

Expand Down Expand Up @@ -29,9 +29,7 @@ def test_valid(tmp_store, test_data_native_dir):
)
assert (
entry.rel_path
== Path("dummylib.pdb")
/ "1972BE39B97341928816018A8ECD08D91"
/ "dummylib.pdb"
== Path("dummylib.pdb") / "1972BE39B97341928816018A8ECD08D91" / "dummylib.pdb"
)
assert entry.is_committed() is False
assert entry.is_compressed() is False
Expand All @@ -53,9 +51,7 @@ def test_valid(tmp_store, test_data_native_dir):
)
assert (
entry.rel_path
== Path("dummylib.pdb")
/ "1972BE39B97341928816018A8ECD08D91"
/ "dummylib.pd_"
== Path("dummylib.pdb") / "1972BE39B97341928816018A8ECD08D91" / "dummylib.pd_"
)
assert entry.is_committed() is False
assert entry.is_compressed() is True
Expand Down
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ basepython = python3
envdir={toxworkdir}/cz
deps = -r{toxinidir}/requirements-lint.txt
commands =
cz check
cz check --rev-range f3cb6c0..HEAD

[testenv:twine-check]
basepython = python3
Expand Down

0 comments on commit f5cf7b9

Please sign in to comment.