aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pkg_resources/__init__.py4
-rw-r--r--pkg_resources/tests/test_resources.py11
2 files changed, 15 insertions, 0 deletions
diff --git a/pkg_resources/__init__.py b/pkg_resources/__init__.py
index 09c3546a..394930ca 100644
--- a/pkg_resources/__init__.py
+++ b/pkg_resources/__init__.py
@@ -2676,6 +2676,10 @@ class Distribution(object):
)
)
+ if not hasattr(object, '__dir__'):
+ # python 2.7 not supported
+ del __dir__
+
@classmethod
def from_filename(cls, filename, metadata=None, **kw):
return cls.from_location(
diff --git a/pkg_resources/tests/test_resources.py b/pkg_resources/tests/test_resources.py
index 3b14d7c0..04d02c1f 100644
--- a/pkg_resources/tests/test_resources.py
+++ b/pkg_resources/tests/test_resources.py
@@ -145,6 +145,16 @@ class TestDistro:
for v in "Twisted>=1.5", "Twisted>=1.5\nZConfig>=2.0":
self.checkRequires(self.distRequires(v), v)
+ needs_object_dir = pytest.mark.skipif(
+ not hasattr(object, '__dir__'),
+ reason='object.__dir__ necessary for self.__dir__ implementation',
+ )
+
+ def test_distribution_dir(self):
+ d = pkg_resources.Distribution()
+ dir(d)
+
+ @needs_object_dir
def test_distribution_dir_includes_provider_dir(self):
d = pkg_resources.Distribution()
before = d.__dir__()
@@ -154,6 +164,7 @@ class TestDistro:
assert len(after) == len(before) + 1
assert 'test_attr' in after
+ @needs_object_dir
def test_distribution_dir_ignores_provider_dir_leading_underscore(self):
d = pkg_resources.Distribution()
before = d.__dir__()