mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-18 16:44:42 +04:00
Add make archives scripts.
This commit is contained in:
parent
d02f41920f
commit
a7133d6742
4 changed files with 158 additions and 0 deletions
62
tests/make_archives_test.py
Normal file
62
tests/make_archives_test.py
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
from __future__ import absolute_import
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import mock
|
||||
import os.path
|
||||
import pytest
|
||||
from plumbum import local
|
||||
|
||||
from pre_commit import make_archives
|
||||
from pre_commit.util import tarfile_open
|
||||
from testing.fixtures import git_dir
|
||||
from testing.util import get_head_sha
|
||||
from testing.util import skipif_slowtests_false
|
||||
|
||||
|
||||
def test_make_archive(tmpdir_factory):
|
||||
output_dir = tmpdir_factory.get()
|
||||
git_path = git_dir(tmpdir_factory)
|
||||
# Add a files to the git directory
|
||||
with local.cwd(git_path):
|
||||
local['touch']('foo')
|
||||
local['git']('add', '.')
|
||||
local['git']('commit', '-m', 'foo')
|
||||
# We'll use this sha
|
||||
head_sha = get_head_sha('.')
|
||||
# And check that this file doesn't exist
|
||||
local['touch']('bar')
|
||||
local['git']('add', '.')
|
||||
local['git']('commit', '-m', 'bar')
|
||||
|
||||
# Do the thing
|
||||
archive_path = make_archives.make_archive(
|
||||
'foo', git_path, head_sha, output_dir,
|
||||
)
|
||||
|
||||
assert archive_path == os.path.join(output_dir, 'foo.tar.gz')
|
||||
assert os.path.exists(archive_path)
|
||||
|
||||
extract_dir = tmpdir_factory.get()
|
||||
|
||||
# Extract the tar
|
||||
with tarfile_open(archive_path) as tf:
|
||||
tf.extractall(extract_dir)
|
||||
|
||||
# Verify the contents of the tar
|
||||
assert os.path.exists(os.path.join(extract_dir, 'foo'))
|
||||
assert os.path.exists(os.path.join(extract_dir, 'foo', 'foo'))
|
||||
assert not os.path.exists(os.path.join(extract_dir, 'foo', '.git'))
|
||||
assert not os.path.exists(os.path.join(extract_dir, 'foo', 'bar'))
|
||||
|
||||
|
||||
@skipif_slowtests_false
|
||||
@pytest.mark.integration
|
||||
def test_main(tmpdir_factory):
|
||||
path = tmpdir_factory.get()
|
||||
|
||||
# Don't actually want to make these in the current repo
|
||||
with mock.patch.object(make_archives, 'RESOURCES_DIR', path):
|
||||
make_archives.main()
|
||||
|
||||
for archive, _, _ in make_archives.REPOS:
|
||||
assert os.path.exists(os.path.join(path, archive + '.tar.gz'))
|
||||
|
|
@ -12,6 +12,7 @@ from pre_commit.util import clean_path_on_failure
|
|||
from pre_commit.util import entry
|
||||
from pre_commit.util import memoize_by_cwd
|
||||
from pre_commit.util import shell_escape
|
||||
from pre_commit.util import tmpdir
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
|
@ -112,3 +113,9 @@ def test_clean_path_on_failure_cleans_for_system_exit(in_tmpdir):
|
|||
)
|
||||
def test_shell_escape(input_str, expected):
|
||||
assert shell_escape(input_str) == expected
|
||||
|
||||
|
||||
def test_tmpdir():
|
||||
with tmpdir() as tempdir:
|
||||
assert os.path.exists(tempdir)
|
||||
assert not os.path.exists(tempdir)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue