summaryrefslogtreecommitdiff
path: root/Lib
diff options
context:
space:
mode:
authorEric Snow <ericsnowcurrently@gmail.com>2013-12-10 22:16:41 -0700
committerEric Snow <ericsnowcurrently@gmail.com>2013-12-10 22:16:41 -0700
commitb282b3d804165d704130fabf0f609d5dd46c1ed2 (patch)
tree99d46706ace4b5596f64302170e52b066c484463 /Lib
parent85cce1eac7a130412e7673208494f30c04bf4b33 (diff)
downloadcpython-git-b282b3d804165d704130fabf0f609d5dd46c1ed2.tar.gz
Issue #18864: Add a setter for ModuleSpec.has_location.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/importlib/_bootstrap.py4
-rw-r--r--Lib/test/test_importlib/test_spec.py7
2 files changed, 11 insertions, 0 deletions
diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
index 6b8f979b8b..baa6c162c6 100644
--- a/Lib/importlib/_bootstrap.py
+++ b/Lib/importlib/_bootstrap.py
@@ -841,6 +841,10 @@ class ModuleSpec:
def has_location(self):
return self._set_fileattr
+ @has_location.setter
+ def has_location(self, value):
+ self._set_fileattr = bool(value)
+
def spec_from_loader(name, loader, *, origin=None, is_package=None):
"""Return a module spec based on various loader methods."""
diff --git a/Lib/test/test_importlib/test_spec.py b/Lib/test/test_importlib/test_spec.py
index 8880ffcbd8..2af47f4b99 100644
--- a/Lib/test/test_importlib/test_spec.py
+++ b/Lib/test/test_importlib/test_spec.py
@@ -116,6 +116,13 @@ class ModuleSpecTests:
self.assertIs(spec.cached, None)
self.assertFalse(spec.has_location)
+ def test_has_location_setter(self):
+ spec = self.machinery.ModuleSpec(self.name, self.loader,
+ origin='somewhere')
+ self.assertFalse(spec.has_location)
+ spec.has_location = True
+ self.assertTrue(spec.has_location)
+
def test_equality(self):
other = type(sys.implementation)(name=self.name,
loader=self.loader,