summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/languages/ruby_test.py13
-rw-r--r--tests/make_archives_test.py46
2 files changed, 13 insertions, 46 deletions
diff --git a/tests/languages/ruby_test.py b/tests/languages/ruby_test.py
index 6c0c9e5..0c6cfed 100644
--- a/tests/languages/ruby_test.py
+++ b/tests/languages/ruby_test.py
@@ -1,4 +1,5 @@
import os.path
+import tarfile
from unittest import mock
import pytest
@@ -8,6 +9,7 @@ from pre_commit import parse_shebang
from pre_commit.languages import ruby
from pre_commit.prefix import Prefix
from pre_commit.util import cmd_output
+from pre_commit.util import resource_bytesio
from testing.util import xfailif_windows
@@ -72,3 +74,14 @@ def test_install_ruby_with_version(fake_gem_prefix):
# Should be able to activate and use rbenv install
with ruby.in_env(fake_gem_prefix, '2.7.2'):
cmd_output('rbenv', 'install', '--help')
+
+
+@pytest.mark.parametrize(
+ 'filename',
+ ('rbenv.tar.gz', 'ruby-build.tar.gz', 'ruby-download.tar.gz'),
+)
+def test_archive_root_stat(filename):
+ with resource_bytesio(filename) as f:
+ with tarfile.open(fileobj=f) as tarf:
+ root, _, _ = filename.partition('.')
+ assert oct(tarf.getmember(root).mode) == '0o755'
diff --git a/tests/make_archives_test.py b/tests/make_archives_test.py
deleted file mode 100644
index 6ae2f8e..0000000
--- a/tests/make_archives_test.py
+++ /dev/null
@@ -1,46 +0,0 @@
-import tarfile
-
-from pre_commit import git
-from pre_commit import make_archives
-from pre_commit.util import cmd_output
-from testing.util import git_commit
-
-
-def test_make_archive(in_git_dir, tmpdir):
- output_dir = tmpdir.join('output').ensure_dir()
- # Add a files to the git directory
- in_git_dir.join('foo').ensure()
- cmd_output('git', 'add', '.')
- git_commit()
- # We'll use this rev
- head_rev = git.head_rev('.')
- # And check that this file doesn't exist
- in_git_dir.join('bar').ensure()
- cmd_output('git', 'add', '.')
- git_commit()
-
- # Do the thing
- archive_path = make_archives.make_archive(
- 'foo', in_git_dir.strpath, head_rev, output_dir.strpath,
- )
-
- expected = output_dir.join('foo.tar.gz')
- assert archive_path == expected.strpath
- assert expected.exists()
-
- extract_dir = tmpdir.join('extract').ensure_dir()
- with tarfile.open(archive_path) as tf:
- tf.extractall(extract_dir.strpath)
-
- # Verify the contents of the tar
- assert extract_dir.join('foo').isdir()
- assert extract_dir.join('foo/foo').exists()
- assert not extract_dir.join('foo/.git').exists()
- assert not extract_dir.join('foo/bar').exists()
-
-
-def test_main(tmpdir):
- make_archives.main(('--dest', tmpdir.strpath))
-
- for archive, _, _ in make_archives.REPOS:
- assert tmpdir.join(f'{archive}.tar.gz').exists()