예제 #1
0
async def test_do_tagging(context, mocker):
    called_args = []

    async def run_command(context, *arguments, local_repo=None):
        called_args.append(
            [tuple([context]) + arguments, {
                'local_repo': local_repo
            }])

    mocker.patch.object(mercurial, 'run_hg_command', new=run_command)
    mocked_tag_info = mocker.patch.object(mercurial, 'get_tag_info')
    mocked_tag_info.return_value = {
        'revision': 'deadbeef',
        'tags': ['TAG1', 'TAG2']
    }
    mocked_source_repo = mocker.patch.object(mercurial, 'get_source_repo')
    mocked_source_repo.return_value = 'https://hg.mozilla.org/treescript-test'
    await mercurial.do_tagging(context, context.config['work_dir'])

    assert len(called_args) == 2
    assert 'local_repo' in called_args[0][1]
    assert 'local_repo' in called_args[1][1]
    assert is_slice_in_list(('pull', '-r', 'deadbeef'), called_args[0][0])
    assert is_slice_in_list(('-r', 'deadbeef'), called_args[1][0])
    assert is_slice_in_list(('TAG1', 'TAG2'), called_args[1][0])
예제 #2
0
async def test_log_outgoing(context, mocker):
    called_args = []

    async def run_command(context, *arguments, local_repo=None):
        called_args.append([tuple([context]) + arguments, {'local_repo': local_repo}])

    mocker.patch.object(mercurial, 'run_hg_command', new=run_command)
    mocked_source_repo = mocker.patch.object(mercurial, 'get_source_repo')
    mocked_source_repo.return_value = 'https://hg.mozilla.org/treescript-test'
    await mercurial.log_outgoing(context, context.config['work_dir'])

    assert len(called_args) == 1
    assert 'local_repo' in called_args[0][1]
    assert is_slice_in_list(('out', '-vp'), called_args[0][0])
    assert is_slice_in_list(('-r', '.'), called_args[0][0])
    assert is_slice_in_list(('https://hg.mozilla.org/treescript-test', ), called_args[0][0])
async def test_log_outgoing(context, mocker):
    called_args = []

    async def run_command(context, *arguments, local_repo=None):
        called_args.append([tuple([context]) + arguments, {'local_repo': local_repo}])

    mocker.patch.object(mercurial, 'run_hg_command', new=run_command)
    mocked_source_repo = mocker.patch.object(mercurial, 'get_source_repo')
    mocked_source_repo.return_value = 'https://hg.mozilla.org/treescript-test'
    await mercurial.log_outgoing(context, context.config['work_dir'])

    assert len(called_args) == 1
    assert 'local_repo' in called_args[0][1]
    assert is_slice_in_list(('out', '-vp'), called_args[0][0])
    assert is_slice_in_list(('-r', '.'), called_args[0][0])
    assert is_slice_in_list(('https://hg.mozilla.org/treescript-test', ), called_args[0][0])
async def test_bump_version_esr(mocker, repo_context, new_version,
                                expect_version):
    if not repo_context.xtest_version.endswith('esr'):
        # XXX pytest.skip raised exceptions here for some reason.
        return

    called_args = []

    async def run_command(context, *arguments, local_repo=None):
        called_args.append(
            [tuple([context]) + arguments, {
                'local_repo': local_repo
            }])

    relative_files = [os.path.join('config', 'milestone.txt')]
    bump_info = {'files': relative_files, 'next_version': new_version}
    mocked_bump_info = mocker.patch.object(vmanip, 'get_version_bump_info')
    mocked_bump_info.return_value = bump_info
    mocker.patch.object(vmanip, 'run_hg_command', new=run_command)
    await vmanip.bump_version(repo_context)
    assert expect_version == vmanip._get_version(
        os.path.join(repo_context.repo, relative_files[0]))
    assert len(called_args) == 1
    assert 'local_repo' in called_args[0][1]
    assert is_slice_in_list(('commit', '-m'), called_args[0][0])
예제 #5
0
async def test_push_ssh(repo_context, mocker, options, expect):
    called_args = []

    async def run_command(context, *arguments, local_repo=None):
        called_args.append([tuple([context]) + arguments, {'local_repo': local_repo}])

    print()
    repo_context.config.update(options)
    mocker.patch.object(mercurial, 'run_hg_command', new=run_command)
    mocked_source_repo = mocker.patch.object(mercurial, 'get_source_repo')
    mocked_source_repo.return_value = 'https://hg.mozilla.org/treescript-test'
    await mercurial.push(repo_context)

    assert len(called_args) == 1
    assert 'local_repo' in called_args[0][1]
    assert is_slice_in_list(('-r', '.'), called_args[0][0])
    assert 'ssh://hg.mozilla.org/treescript-test' in called_args[0][0]
    assert is_slice_in_list(('push', '-e', expect), called_args[0][0])
async def test_push_ssh(repo_context, mocker, options, expect):
    called_args = []

    async def run_command(context, *arguments, local_repo=None):
        called_args.append([tuple([context]) + arguments, {'local_repo': local_repo}])

    print()
    repo_context.config.update(options)
    mocker.patch.object(mercurial, 'run_hg_command', new=run_command)
    mocked_source_repo = mocker.patch.object(mercurial, 'get_source_repo')
    mocked_source_repo.return_value = 'https://hg.mozilla.org/treescript-test'
    await mercurial.push(repo_context)

    assert len(called_args) == 1
    assert 'local_repo' in called_args[0][1]
    assert is_slice_in_list(('-r', '.'), called_args[0][0])
    assert 'ssh://hg.mozilla.org/treescript-test' in called_args[0][0]
    assert is_slice_in_list(('push', '-e', expect), called_args[0][0])
예제 #7
0
async def test_do_tagging(context, mocker):
    called_args = []

    async def run_command(context, *arguments, local_repo=None):
        called_args.append([tuple([context]) + arguments, {'local_repo': local_repo}])

    mocker.patch.object(mercurial, 'run_hg_command', new=run_command)
    mocked_tag_info = mocker.patch.object(mercurial, 'get_tag_info')
    mocked_tag_info.return_value = {'revision': 'deadbeef', 'tags': ['TAG1', 'TAG2']}
    mocked_source_repo = mocker.patch.object(mercurial, 'get_source_repo')
    mocked_source_repo.return_value = 'https://hg.mozilla.org/treescript-test'
    await mercurial.do_tagging(context, context.config['work_dir'])

    assert len(called_args) == 2
    assert 'local_repo' in called_args[0][1]
    assert 'local_repo' in called_args[1][1]
    assert is_slice_in_list(('pull', '-r', 'deadbeef'), called_args[0][0])
    assert is_slice_in_list(('-r', 'deadbeef'), called_args[1][0])
    assert is_slice_in_list(('TAG1', 'TAG2'), called_args[1][0])
예제 #8
0
async def test_run_hg_command_localrepo(mocker, context):
    args = ['foobar', '--bar']
    called_args = []

    async def run_command(*arguments, **kwargs):
        called_args.append([*arguments, kwargs])

    mocker.patch.object(mercurial, 'execute_subprocess', new=run_command)
    env_call = mocker.patch.object(mercurial, 'build_hg_environment')
    cmd_call = mocker.patch.object(mercurial, 'build_hg_command')
    env = {'HGPLAIN': 1, 'LANG': 'C'}
    env_call.return_value = env
    cmd_call.return_value = ['hg', *args]

    await mercurial.run_hg_command(context, *args, local_repo='/tmp/localrepo')

    env_call.assert_called_with()
    cmd_call.assert_called_with(context, *args)
    assert len(called_args) == 1
    is_slice_in_list(['-R', '/tmp/localrepo'], called_args[0][0])
예제 #9
0
async def test_run_hg_command_localrepo(mocker, context):
    args = ['foobar', '--bar']
    called_args = []

    async def run_command(*arguments, **kwargs):
        called_args.append([*arguments, kwargs])

    mocker.patch.object(mercurial, 'execute_subprocess', new=run_command)
    env_call = mocker.patch.object(mercurial, 'build_hg_environment')
    cmd_call = mocker.patch.object(mercurial, 'build_hg_command')
    env = {'HGPLAIN': 1, 'LANG': 'C'}
    env_call.return_value = env
    cmd_call.return_value = ['hg', *args]

    await mercurial.run_hg_command(context, *args, local_repo='/tmp/localrepo')

    env_call.assert_called_with()
    cmd_call.assert_called_with(context, *args)
    assert len(called_args) == 1
    is_slice_in_list(['-R', '/tmp/localrepo'], called_args[0][0])
예제 #10
0
async def test_bump_version(mocker, repo_context, new_version):
    called_args = []

    async def run_command(context, *arguments, local_repo=None):
        called_args.append([tuple([context]) + arguments, {'local_repo': local_repo}])

    test_version = new_version
    if repo_context.xtest_version.endswith('esr'):
        test_version = new_version + 'esr'

    relative_files = [os.path.join('config', 'milestone.txt')]
    bump_info = {'files': relative_files, 'next_version': new_version}
    mocked_bump_info = mocker.patch.object(vmanip, 'get_version_bump_info')
    mocked_bump_info.return_value = bump_info
    mocker.patch.object(vmanip, 'run_hg_command', new=run_command)
    await vmanip.bump_version(repo_context)
    assert test_version == vmanip._get_version(
        os.path.join(repo_context.repo, relative_files[0]))
    assert len(called_args) == 1
    assert 'local_repo' in called_args[0][1]
    assert is_slice_in_list(('commit', '-m'), called_args[0][0])
async def test_bump_version(mocker, repo_context, new_version, should_append_esr):
    called_args = []

    async def run_command(context, *arguments, local_repo=None):
        called_args.append([tuple([context]) + arguments, {'local_repo': local_repo}])

    test_version = new_version
    if repo_context.xtest_version.endswith('esr') and should_append_esr:
        test_version = new_version + 'esr'

    relative_files = [os.path.join('config', 'milestone.txt')]
    bump_info = {'files': relative_files, 'next_version': new_version}
    mocked_bump_info = mocker.patch.object(vmanip, 'get_version_bump_info')
    mocked_bump_info.return_value = bump_info
    mocker.patch.object(vmanip, 'run_hg_command', new=run_command)
    await vmanip.bump_version(repo_context)
    assert test_version == vmanip._get_version(
        os.path.join(repo_context.repo, relative_files[0]))
    assert len(called_args) == 1
    assert 'local_repo' in called_args[0][1]
    assert is_slice_in_list(('commit', '-m'), called_args[0][0])
예제 #12
0
 async def check_params(*args, **kwargs):
     assert is_slice_in_list(('--sharebase', '/builds/hg-shared-test'), args)
     assert is_slice_in_list(('robustcheckout', 'https://hg.mozilla.org/test-repo',
                              os.path.join(context.config['work_dir'], 'src')),
                             args)
예제 #13
0
 async def check_params(*args, **kwargs):
     assert is_slice_in_list(('--sharebase', '/builds/hg-shared-test'),
                             args)
     assert is_slice_in_list(
         ('robustcheckout', 'https://hg.mozilla.org/test-repo',
          os.path.join(context.config['work_dir'], 'src')), args)