mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-05 04:24:56 -04:00
Try to detect borked package installations. (#12244)
* Try to detect borked package installations. Fixes #12223. Co-authored-by: Sean Quah <8349537+squahtx@users.noreply.github.com>
This commit is contained in:
parent
8fe930c215
commit
bf9d549e3a
3 changed files with 38 additions and 2 deletions
|
@ -12,7 +12,7 @@ from tests.unittest import TestCase
|
|||
|
||||
|
||||
class DummyDistribution(metadata.Distribution):
|
||||
def __init__(self, version: str):
|
||||
def __init__(self, version: object):
|
||||
self._version = version
|
||||
|
||||
@property
|
||||
|
@ -30,6 +30,7 @@ old = DummyDistribution("0.1.2")
|
|||
old_release_candidate = DummyDistribution("0.1.2rc3")
|
||||
new = DummyDistribution("1.2.3")
|
||||
new_release_candidate = DummyDistribution("1.2.3rc4")
|
||||
distribution_with_no_version = DummyDistribution(None)
|
||||
|
||||
# could probably use stdlib TestCase --- no need for twisted here
|
||||
|
||||
|
@ -67,6 +68,18 @@ class TestDependencyChecker(TestCase):
|
|||
# should not raise
|
||||
check_requirements()
|
||||
|
||||
def test_version_reported_as_none(self) -> None:
|
||||
"""Complain if importlib.metadata.version() returns None.
|
||||
|
||||
This shouldn't normally happen, but it was seen in the wild (#12223).
|
||||
"""
|
||||
with patch(
|
||||
"synapse.util.check_dependencies.metadata.requires",
|
||||
return_value=["dummypkg >= 1"],
|
||||
):
|
||||
with self.mock_installed_package(distribution_with_no_version):
|
||||
self.assertRaises(DependencyException, check_requirements)
|
||||
|
||||
def test_checks_ignore_dev_dependencies(self) -> None:
|
||||
"""Bot generic and per-extra checks should ignore dev dependencies."""
|
||||
with patch(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue