+# git-cache: Cache git content locally
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation, version 3.
+
+
import os.path
import tempfile
import shutil
git_cache.ensure_rev_available(
self.upstream, 'main', rev, force=True)
+ def test_fetch_tag(self) -> None:
+ _git(self.upstream, 'tag', 'v1.2.3')
+ d, rev = git_cache.fetch(self.upstream, 'tag v1.2.3')
+ self.assertEqual(_git(d, 'show', f'{rev}:file'), b'Contents')
+
+ def test_ensure_tag(self) -> None:
+ rev = _git(self.upstream, 'log', '--format=%H', '-n1').strip().decode()
+ _git(self.upstream, 'tag', 'v1.2.3')
+ d = git_cache.ensure_rev_available(self.upstream, 'tag v1.2.3', rev)
+ self.assertEqual(_git(d, 'show', f'{rev}:file'), b'Contents')
+
+ def test_fetch_annotated_tag(self) -> None:
+ _git(self.upstream, 'tag', '--annotate', '-m', 'Tag', 'v1.2.3')
+ d, rev = git_cache.fetch(self.upstream, 'tag v1.2.3')
+ self.assertEqual(_git(d, 'show', f'{rev}:file'), b'Contents')
+
+ def test_ensure_annotated_tag(self) -> None:
+ rev = _git(self.upstream, 'log', '--format=%H', '-n1').strip().decode()
+ _git(self.upstream, 'tag', '--annotate', '-m', 'Tag', 'v1.2.3')
+ d = git_cache.ensure_rev_available(self.upstream, 'tag v1.2.3', rev)
+ self.assertEqual(_git(d, 'show', f'{rev}:file'), b'Contents')
+
if __name__ == '__main__':
unittest.main()