diff options
| -rw-r--r-- | changelog.d/1427.change.rst | 1 | ||||
| -rw-r--r-- | setuptools/command/egg_info.py | 1 | ||||
| -rw-r--r-- | setuptools/tests/test_egg_info.py | 17 |
3 files changed, 19 insertions, 0 deletions
diff --git a/changelog.d/1427.change.rst b/changelog.d/1427.change.rst new file mode 100644 index 00000000..86260235 --- /dev/null +++ b/changelog.d/1427.change.rst @@ -0,0 +1 @@ +Set timestamp of ``.egg-info`` directory whenever ``egg_info`` command is run. diff --git a/setuptools/command/egg_info.py b/setuptools/command/egg_info.py index 5fd6c888..a3cd35dc 100644 --- a/setuptools/command/egg_info.py +++ b/setuptools/command/egg_info.py @@ -281,6 +281,7 @@ class egg_info(InfoCommon, Command): def run(self): self.mkpath(self.egg_info) + os.utime(self.egg_info, None) installer = self.distribution.fetch_build_egg for ep in iter_entry_points('egg_info.writers'): ep.require(installer=installer) diff --git a/setuptools/tests/test_egg_info.py b/setuptools/tests/test_egg_info.py index 1a100266..c7a08295 100644 --- a/setuptools/tests/test_egg_info.py +++ b/setuptools/tests/test_egg_info.py @@ -1,9 +1,11 @@ +import datetime import sys import ast import os import glob import re import stat +import time from setuptools.command.egg_info import egg_info, manifest_maker from setuptools.dist import Distribution @@ -146,6 +148,21 @@ class TestEggInfo: ] assert sorted(actual) == expected + def test_rebuilt(self, tmpdir_cwd, env): + """Ensure timestamps are updated when the command is re-run.""" + self._create_project() + + self._run_egg_info_command(tmpdir_cwd, env) + timestamp_a = os.path.getmtime('foo.egg-info') + + # arbitrary sleep just to handle *really* fast systems + time.sleep(.001) + + self._run_egg_info_command(tmpdir_cwd, env) + timestamp_b = os.path.getmtime('foo.egg-info') + + assert timestamp_a != timestamp_b + def test_manifest_template_is_read(self, tmpdir_cwd, env): self._create_project() build_files({ |
