mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
More recent versions of immutables
require typing_extensions
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
This commit is contained in:
parent
588cd703af
commit
723e7a66c7
2 changed files with 36 additions and 18 deletions
|
@ -33,14 +33,16 @@ import salt.utils.stringutils
|
|||
import salt.version
|
||||
|
||||
# This is needed until we drop support for python 3.6
|
||||
has_immutables = False
|
||||
try:
|
||||
import immutables
|
||||
|
||||
has_immutables = True
|
||||
except ImportError:
|
||||
pass
|
||||
immutables = None
|
||||
|
||||
try:
|
||||
# typing_extensions is an immutables dependency on newer versions
|
||||
import typing_extensions
|
||||
except ImportError:
|
||||
typing_extensions = None
|
||||
|
||||
try:
|
||||
import zlib
|
||||
|
@ -432,6 +434,7 @@ def get_tops(extra_mods="", so_mods=""):
|
|||
backports_abc,
|
||||
looseversion,
|
||||
packaging,
|
||||
immutables,
|
||||
]
|
||||
modules = find_site_modules("contextvars")
|
||||
if modules:
|
||||
|
@ -440,8 +443,8 @@ def get_tops(extra_mods="", so_mods=""):
|
|||
contextvars = py_contextvars
|
||||
log.debug("Using contextvars %r", contextvars)
|
||||
mods.append(contextvars)
|
||||
if has_immutables:
|
||||
mods.append(immutables)
|
||||
if typing_extensions is not None:
|
||||
mods.append(typing_extensions)
|
||||
for mod in mods:
|
||||
if mod:
|
||||
log.debug('Adding module to the tops: "%s"', mod.__name__)
|
||||
|
|
|
@ -446,11 +446,15 @@ class SSHThinTestCase(TestCase):
|
|||
"salt.utils.thin.looseversion",
|
||||
type("looseversion", (), {"__file__": "/site-packages/looseversion"}),
|
||||
)
|
||||
@patch_if(
|
||||
salt.utils.thin.has_immutables,
|
||||
@patch(
|
||||
"salt.utils.thin.immutables",
|
||||
type("immutables", (), {"__file__": "/site-packages/immutables"}),
|
||||
)
|
||||
@patch_if(
|
||||
salt.utils.thin.typing_extensions is not None,
|
||||
"salt.utils.thin.typing_extensions",
|
||||
type("typing_extensions", (), {"__file__": "/site-packages/typing_extensions"}),
|
||||
)
|
||||
@patch("salt.utils.thin.log", MagicMock())
|
||||
def test_get_tops(self):
|
||||
"""
|
||||
|
@ -474,9 +478,10 @@ class SSHThinTestCase(TestCase):
|
|||
"contextvars",
|
||||
"looseversion",
|
||||
"packaging",
|
||||
"immutables",
|
||||
]
|
||||
if salt.utils.thin.has_immutables:
|
||||
base_tops.extend(["immutables"])
|
||||
if salt.utils.thin.typing_extensions is not None:
|
||||
base_tops.append("typing_extensions")
|
||||
tops = []
|
||||
for top in thin.get_tops(extra_mods="foo,bar"):
|
||||
if top.find("/") != -1:
|
||||
|
@ -551,11 +556,15 @@ class SSHThinTestCase(TestCase):
|
|||
"salt.utils.thin.looseversion",
|
||||
type("looseversion", (), {"__file__": "/site-packages/looseversion"}),
|
||||
)
|
||||
@patch_if(
|
||||
salt.utils.thin.has_immutables,
|
||||
@patch(
|
||||
"salt.utils.thin.immutables",
|
||||
type("immutables", (), {"__file__": "/site-packages/immutables"}),
|
||||
)
|
||||
@patch_if(
|
||||
salt.utils.thin.typing_extensions is not None,
|
||||
"salt.utils.thin.typing_extensions",
|
||||
type("typing_extensions", (), {"__file__": "/site-packages/typing_extensions"}),
|
||||
)
|
||||
@patch("salt.utils.thin.log", MagicMock())
|
||||
def test_get_tops_extra_mods(self):
|
||||
"""
|
||||
|
@ -579,11 +588,12 @@ class SSHThinTestCase(TestCase):
|
|||
"contextvars",
|
||||
"looseversion",
|
||||
"packaging",
|
||||
"immutables",
|
||||
"foo",
|
||||
"bar.py",
|
||||
]
|
||||
if salt.utils.thin.has_immutables:
|
||||
base_tops.extend(["immutables"])
|
||||
if salt.utils.thin.typing_extensions is not None:
|
||||
base_tops.append("typing_extensions")
|
||||
libs = salt.utils.thin.find_site_modules("contextvars")
|
||||
foo = {"__file__": os.sep + os.path.join("custom", "foo", "__init__.py")}
|
||||
bar = {"__file__": os.sep + os.path.join("custom", "bar")}
|
||||
|
@ -666,11 +676,15 @@ class SSHThinTestCase(TestCase):
|
|||
"salt.utils.thin.looseversion",
|
||||
type("looseversion", (), {"__file__": "/site-packages/looseversion"}),
|
||||
)
|
||||
@patch_if(
|
||||
salt.utils.thin.has_immutables,
|
||||
@patch(
|
||||
"salt.utils.thin.immutables",
|
||||
type("immutables", (), {"__file__": "/site-packages/immutables"}),
|
||||
)
|
||||
@patch_if(
|
||||
salt.utils.thin.typing_extensions is not None,
|
||||
"salt.utils.thin.typing_extensions",
|
||||
type("typing_extensions", (), {"__file__": "/site-packages/typing_extensions"}),
|
||||
)
|
||||
@patch("salt.utils.thin.log", MagicMock())
|
||||
def test_get_tops_so_mods(self):
|
||||
"""
|
||||
|
@ -694,11 +708,12 @@ class SSHThinTestCase(TestCase):
|
|||
"contextvars",
|
||||
"looseversion",
|
||||
"packaging",
|
||||
"immutables",
|
||||
"foo.so",
|
||||
"bar.so",
|
||||
]
|
||||
if salt.utils.thin.has_immutables:
|
||||
base_tops.extend(["immutables"])
|
||||
if salt.utils.thin.typing_extensions is not None:
|
||||
base_tops.append("typing_extensions")
|
||||
libs = salt.utils.thin.find_site_modules("contextvars")
|
||||
with patch("salt.utils.thin.find_site_modules", MagicMock(side_effect=[libs])):
|
||||
with patch(
|
||||
|
|
Loading…
Add table
Reference in a new issue