diff options
-rw-r--r-- | pkg_resources/__init__.py | 4 | ||||
-rw-r--r-- | pkg_resources/tests/test_resources.py | 11 |
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__() |