Example #1
0
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()
Example #2
0
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'))}
Example #3
0
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)
Example #5
0
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'))}
Example #9
0
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()
Example #11
0
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'
    )
Example #12
0
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
Example #13
0
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'))}