mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-10-01 03:43:42 +08:00
pytest: strict config (#29676)
* pytest: strict config * collection works * fixes
This commit is contained in:
Generated
+31
-14
@@ -1,4 +1,4 @@
|
|||||||
# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand.
|
# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand.
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aiohttp"
|
name = "aiohttp"
|
||||||
@@ -2383,14 +2383,7 @@ files = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
numpy = [
|
numpy = {version = ">=1.23.5", markers = "python_version >= \"3.11\""}
|
||||||
{version = ">=1.21.2", markers = "python_version >= \"3.10\""},
|
|
||||||
{version = ">=1.21.4", markers = "python_version >= \"3.10\" and platform_system == \"Darwin\""},
|
|
||||||
{version = ">=1.23.5", markers = "python_version >= \"3.11\""},
|
|
||||||
{version = ">=1.19.3", markers = "python_version >= \"3.6\" and platform_system == \"Linux\" and platform_machine == \"aarch64\" or python_version >= \"3.9\""},
|
|
||||||
{version = ">=1.17.0", markers = "python_version >= \"3.7\""},
|
|
||||||
{version = ">=1.17.3", markers = "python_version >= \"3.8\""},
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "packaging"
|
name = "packaging"
|
||||||
@@ -2438,10 +2431,7 @@ files = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
numpy = [
|
numpy = {version = ">=1.23.2", markers = "python_version >= \"3.11\""}
|
||||||
{version = ">=1.21.0", markers = "python_version >= \"3.10\""},
|
|
||||||
{version = ">=1.23.2", markers = "python_version >= \"3.11\""},
|
|
||||||
]
|
|
||||||
python-dateutil = ">=2.8.2"
|
python-dateutil = ">=2.8.2"
|
||||||
pytz = ">=2020.1"
|
pytz = ">=2020.1"
|
||||||
tzdata = ">=2022.1"
|
tzdata = ">=2022.1"
|
||||||
@@ -3243,6 +3233,33 @@ files = [
|
|||||||
attrs = ">=19.2.0"
|
attrs = ">=19.2.0"
|
||||||
pytest = ">=7.0"
|
pytest = ">=7.0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pytest-timeout"
|
||||||
|
version = "2.1.0"
|
||||||
|
description = "pytest plugin to abort hanging tests"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
files = [
|
||||||
|
{file = "pytest-timeout-2.1.0.tar.gz", hash = "sha256:c07ca07404c612f8abbe22294b23c368e2e5104b521c1790195561f37e1ac3d9"},
|
||||||
|
{file = "pytest_timeout-2.1.0-py3-none-any.whl", hash = "sha256:f6f50101443ce70ad325ceb4473c4255e9d74e3c7cd0ef827309dfa4c0d975c6"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
pytest = ">=5.0.0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pytest-timeouts"
|
||||||
|
version = "1.2.1"
|
||||||
|
description = "Linux-only Pytest plugin to control durations of various test case execution phases"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
files = [
|
||||||
|
{file = "pytest-timeouts-1.2.1.tar.gz", hash = "sha256:390351afc7ecb422ea0ec38081e0acd91cad416b383944a9a3358087de50c2fb"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
pytest = ">=3.1"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pytest-xdist"
|
name = "pytest-xdist"
|
||||||
version = "3.3.1"
|
version = "3.3.1"
|
||||||
@@ -4322,4 +4339,4 @@ multidict = ">=4.0"
|
|||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = "~3.11"
|
python-versions = "~3.11"
|
||||||
content-hash = "7e2bfde2719e7d7bb4b1627b0657e9ab4a9f4e1637d8b8ae6d5c80c7861e2052"
|
content-hash = "799e03aa1f3098c94a383f17b56275cd4140179bc457ff837b793fbcf7eb4b1e"
|
||||||
|
|||||||
+4
-2
@@ -1,8 +1,8 @@
|
|||||||
[tool.pytest.ini_options]
|
[tool.pytest.ini_options]
|
||||||
minversion = "6.0"
|
minversion = "6.0"
|
||||||
addopts = "--ignore=panda/ --ignore=rednose_repo/ --ignore=tinygrad_repo/ --ignore=laika_repo/"
|
addopts = "--ignore=opendbc/ --ignore=panda/ --ignore=rednose_repo/ --ignore=tinygrad_repo/ --ignore=laika_repo/ -Werror --strict-config --strict-markers"
|
||||||
python_files = "test_*.py"
|
python_files = "test_*.py"
|
||||||
timeout = "30" # you get this long by default
|
#timeout = "30" # you get this long by default
|
||||||
|
|
||||||
[tool.mypy]
|
[tool.mypy]
|
||||||
python_version = "3.11"
|
python_version = "3.11"
|
||||||
@@ -124,6 +124,8 @@ pytest = "*"
|
|||||||
pytest-cov = "*"
|
pytest-cov = "*"
|
||||||
pytest-subtests = "*"
|
pytest-subtests = "*"
|
||||||
pytest-xdist = "*"
|
pytest-xdist = "*"
|
||||||
|
pytest-timeout = "*"
|
||||||
|
pytest-timeouts = "*"
|
||||||
scipy = "*"
|
scipy = "*"
|
||||||
sphinx = "*"
|
sphinx = "*"
|
||||||
sphinx-rtd-theme = "*"
|
sphinx-rtd-theme = "*"
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ from openpilot.system.loggerd.uploader import uploader_fn, UPLOAD_ATTR_NAME, UPL
|
|||||||
from openpilot.system.loggerd.tests.loggerd_tests_common import UploaderTestCase
|
from openpilot.system.loggerd.tests.loggerd_tests_common import UploaderTestCase
|
||||||
|
|
||||||
|
|
||||||
class TestLogHandler(logging.Handler):
|
class FakeLogHandler(logging.Handler):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
logging.Handler.__init__(self)
|
logging.Handler.__init__(self)
|
||||||
self.reset()
|
self.reset()
|
||||||
@@ -33,7 +33,7 @@ class TestLogHandler(logging.Handler):
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
log_handler = TestLogHandler()
|
log_handler = FakeLogHandler()
|
||||||
cloudlog.addHandler(log_handler)
|
cloudlog.addHandler(log_handler)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -18,19 +18,18 @@ class TestPlotJuggler(unittest.TestCase):
|
|||||||
install()
|
install()
|
||||||
|
|
||||||
pj = os.path.join(PJ_DIR, "juggle.py")
|
pj = os.path.join(PJ_DIR, "juggle.py")
|
||||||
p = subprocess.Popen(f'QT_QPA_PLATFORM=offscreen {pj} --demo None 1 --qlog',
|
with subprocess.Popen(f'QT_QPA_PLATFORM=offscreen {pj} --demo None 1 --qlog',
|
||||||
stderr=subprocess.PIPE, shell=True, start_new_session=True)
|
stderr=subprocess.PIPE, shell=True, start_new_session=True) as p:
|
||||||
|
# Wait for "Done reading Rlog data" signal from the plugin
|
||||||
|
output = "\n"
|
||||||
|
with Timeout(180, error_msg=output):
|
||||||
|
while output.splitlines()[-1] != "Done reading Rlog data":
|
||||||
|
output += p.stderr.readline().decode("utf-8")
|
||||||
|
|
||||||
# Wait for "Done reading Rlog data" signal from the plugin
|
# ensure plotjuggler didn't crash after exiting the plugin
|
||||||
output = "\n"
|
time.sleep(15)
|
||||||
with Timeout(180, error_msg=output):
|
self.assertEqual(p.poll(), None)
|
||||||
while output.splitlines()[-1] != "Done reading Rlog data":
|
os.killpg(os.getpgid(p.pid), signal.SIGTERM)
|
||||||
output += p.stderr.readline().decode("utf-8")
|
|
||||||
|
|
||||||
# ensure plotjuggler didn't crash after exiting the plugin
|
|
||||||
time.sleep(15)
|
|
||||||
self.assertEqual(p.poll(), None)
|
|
||||||
os.killpg(os.getpgid(p.pid), signal.SIGTERM)
|
|
||||||
|
|
||||||
# TODO: also test that layouts successfully load
|
# TODO: also test that layouts successfully load
|
||||||
def test_layouts(self):
|
def test_layouts(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user