def test_find_repos_skips_already_migrated(file_config_files): write_file_commit( file_config_files.dir1, 'setup.py', 'from setuptools import setup\nsetup()\n', ) clone.main(('--config-filename', str(file_config_files.cfg))) assert find_repos(load_config(str(file_config_files.cfg))) == set()
def test_find_repos_finds_a_repo(file_config_files): write_file_commit( file_config_files.dir1, 'setup.py', 'from setuptools import setup\nsetup(name="pkg", version="1")\n', ) clone.main(('--config-filename', str(file_config_files.cfg))) ret = find_repos(load_config(str(file_config_files.cfg))) assert ret == {str(file_config_files.output_dir.join('repo1'))}
def file_config_non_default(file_config): subprocess.check_call(( 'git', '-C', file_config.dir1, 'branch', '--move', 'm2', )) subprocess.check_call(( 'git', '-C', file_config.dir1, 'symbolic-ref', 'HEAD', 'refs/heads/m2', )) write_file_commit(file_config.dir1, 'f', 'OHAI\n') return file_config
def repo(tmpdir): src_repo = tmpdir.join('hook_repo') init_repo(src_repo) write_file_commit(src_repo, 'azure-pipelines.yml', SAMPLE) update_repo = tmpdir.join('update_repo') subprocess.check_call(('git', 'clone', src_repo, update_repo)) return auto_namedtuple(src_repo=src_repo, update_repo=update_repo)
def test_main_custom_file_pattern(file_config_files): write_file_commit(file_config_files.dir1, 'g', 'OHAI\n') clone.main(('--config-filename', str(file_config_files.cfg))) assert not main(( '--config-filename', str(file_config_files.cfg), 's/AI/IE/g', 'g', )) assert file_config_files.dir1.join('f').read() == 'OHAI\n' assert file_config_files.dir1.join('g').read() == 'OHIE\n' assert file_config_files.dir2.join('f').read() == 'OHELLO\n'
def test_find_repos(file_config_files): write_file_commit( # A migrated configuration file_config_files.dir1, '.pre-commit-config.yaml', 'repos: []\n', ) write_file_commit( # A non-migrated configuration file_config_files.dir2, '.pre-commit-config.yaml', '[]\n', ) clone.main(('--config-filename', str(file_config_files.cfg))) ret = find_repos(load_config(str(file_config_files.cfg))) assert ret == {str(file_config_files.output_dir.join('repo2'))}
def fake_clone(tmpdir_factory): src = tmpdir_factory.mktemp('repo') init_repo(src) write_file_commit(src, 'job--pre-commit.yml', 'jobs: []') subprocess.check_call(('git', '-C', src, 'tag', 'v1.0.0')) write_file_commit(src, 'README.md', '# template repo') def clone_func(service, repo, path): subprocess.check_call(('git', 'clone', src, path)) subprocess.check_call(('git', 'fetch', 'origin', 'HEAD'), cwd=path) with mock.patch.object(azure_pipelines_autoupdate, '_clone', clone_func): yield
def test_find_repos_finds_a_repo(file_config_files): contents = '''\ - repo: https://github.com/pre-commit/pre-commit-hooks rev: v1.4.0-1 hooks: - id: autopep8-wrapper ''' git.write_file_commit( file_config_files.dir1, '.pre-commit-config.yaml', contents, ) clone.main(('--config-filename', str(file_config_files.cfg))) ret = find_repos(load_config(str(file_config_files.cfg))) assert ret == {str(file_config_files.output_dir.join('repo1'))}
def setup_py_repo(tmpdir): src_repo = tmpdir.join('hook_repo') init_repo(src_repo) src_repo.join('setup.cfg').write('[bdist_wheel]\nuniversal = true\n') write_file_commit( src_repo, 'setup.py', 'from setuptools import setup\n' 'setup(name="pkg", version="1.0")\n', ) update_repo = tmpdir.join('update_repo') subprocess.check_call(('git', 'clone', src_repo, update_repo)) return auto_namedtuple(src_repo=src_repo, update_repo=update_repo)
def test_find_repos_does_not_find_migrated_repo(file_config_files): contents = '''\ - repo: https://gitlab.com/pycqa/flake8 rev: 3.7.0 hooks: - id: flake8 ''' git.write_file_commit( file_config_files.dir1, '.pre-commit-config.yaml', contents, ) clone.main(('--config-filename', str(file_config_files.cfg))) ret = find_repos(load_config(str(file_config_files.cfg))) assert ret == set()
def test_rewrite_setup_cfg_fmt(file_config, setup_py_repo): write_file_commit(setup_py_repo.src_repo, 'README.md', 'my project!') ret = main(( '--config-filename', str(file_config.cfg), '--repos', str(setup_py_repo.update_repo), )) assert not ret setup_py = setup_py_repo.src_repo.join('setup.py').read() assert setup_py == 'from setuptools import setup\nsetup()\n' setup_cfg = setup_py_repo.src_repo.join('setup.cfg').read() assert setup_cfg == ( '[metadata]\n' 'name = pkg\n' 'version = 1.0\n' 'long_description = file: README.md\n' 'long_description_content_type = text/markdown\n' '\n' '[bdist_wheel]\n' 'universal = true\n' )
def file_config_files(file_config): write_file_commit(file_config.dir1, 'f', 'OHAI\n') write_file_commit(file_config.dir2, 'f', 'OHELLO\n') write_file_commit(file_config.dir2, 'f2', '') clone.main(('--config-filename', str(file_config.cfg))) return file_config
def test_find_repos_finds_a_repo(file_config_files): write_file_commit(file_config_files.dir1, '.pre-commit-config.yaml', '[]') clone.main(('--config-filename', str(file_config_files.cfg))) ret = find_repos(load_config(str(file_config_files.cfg))) assert ret == {str(file_config_files.output_dir.join('repo1'))}
def test_main(file_config_files): write_file_commit( file_config_files.dir1, '.travis.yml', 'language: python\n' 'matrix:\n' ' include:\n' ' - env: TOXENV=py36\n' ' python: 3.6\n' 'install: pip install coveralls tox\n' 'script: tox\n' 'after_success: coveralls\n' 'cache:\n' ' directories:\n' ' - $HOME/.cache/pip\n' ' - $HOME/.pre-commit\n', ) write_file_commit( file_config_files.dir2, 'appveyor.yml', r'environment:\n' r' matrix:\n' r' - TOXENV: py36\n' r'install:\n' r' - "SET PATH=C:\\Python36;C:\\Python36\\Scripts;%PATH%"\n' r' - pip install tox\n' r'build: false\n' r'test_script: tox\n' r'cache:\n' r" - '%LOCALAPPDATA%\pip\cache'\n" r" - '%USERPROFILE%\.pre-commit'\n", ) clone.main(('--config-filename', str(file_config_files.cfg))) assert not main(('--config-filename', str(file_config_files.cfg))) assert file_config_files.dir1.join('.travis.yml').read() == ( 'language: python\n' 'matrix:\n' ' include:\n' ' - env: TOXENV=py36\n' ' python: 3.6\n' 'install: pip install coveralls tox\n' 'script: tox\n' 'after_success: coveralls\n' 'cache:\n' ' directories:\n' ' - $HOME/.cache/pip\n' ' - $HOME/.cache/pre-commit\n') assert file_config_files.dir2.join('appveyor.yml').read() == ( r'environment:\n' r' matrix:\n' r' - TOXENV: py36\n' r'install:\n' r' - "SET PATH=C:\\Python36;C:\\Python36\\Scripts;%PATH%"\n' r' - pip install tox\n' r'build: false\n' r'test_script: tox\n' r'cache:\n' r" - '%LOCALAPPDATA%\pip\cache'\n" r" - '%USERPROFILE%\.cache\pre-commit'\n")
def test_find_repos_finds_a_repo(file_config_files): write_file_commit(file_config_files.dir1, 'azure-pipelines.yml', SAMPLE) clone.main(('--config-filename', str(file_config_files.cfg))) config = load_config(str(file_config_files.cfg)) ret = azure_pipelines_autoupdate.find_repos(config) assert ret == {str(file_config_files.output_dir.join('repo1'))}