コード例 #1
0
ファイル: test_git_utils.py プロジェクト: java-tools/mike
    def test_ahead(self):
        commit_files(['file2.txt'], 'add file2')
        old_rev = git_utils.get_latest_commit('master')

        git_utils.try_rebase_branch('origin', 'master')
        new_rev = git_utils.get_latest_commit('master')
        self.assertEqual(old_rev, new_rev)
コード例 #2
0
ファイル: test_git_utils.py プロジェクト: java-tools/mike
    def test_nonexistent_remote(self):
        old_rev = git_utils.get_latest_commit('master')
        check_call_silent(['git', 'fetch', 'origin'])
        git_utils.try_rebase_branch('upstream', 'master')
        new_rev = git_utils.get_latest_commit('master')

        self.assertEqual(old_rev, new_rev)
コード例 #3
0
ファイル: test_git_utils.py プロジェクト: java-tools/mike
    def test_behind(self):
        check_call_silent(['git', 'checkout', 'master'])
        commit_files(['file2.txt'], 'second commit')

        rev = git_utils.get_latest_commit('master')
        git_utils.update_ref('branch', rev)
        self.assertEqual(git_utils.get_latest_commit('branch'), rev)
コード例 #4
0
ファイル: test_set_default.py プロジェクト: jimporter/mike
    def test_diverged_remote(self):
        self._deploy()

        stage_dir('set_default_clone')
        check_call_silent(['git', 'clone', self.stage, '.'])
        check_call_silent(['git', 'fetch', 'origin', 'gh-pages:gh-pages'])
        git_config()

        with pushd(self.stage):
            self._deploy(versions=['2.0'])
            origin_rev = git_utils.get_latest_commit('gh-pages')

        self._deploy(versions=['2.1'])
        clone_rev = git_utils.get_latest_commit('gh-pages')
        check_call_silent(['git', 'fetch', 'origin'])

        assertOutput(
            self, ['mike', 'set-default', '1.0'],
            output=(
                'error: gh-pages has diverged from origin/gh-pages\n' +
                '  Pass --ignore to ignore this or --rebase to rebase onto ' +
                'remote\n'),
            returncode=1)
        self.assertEqual(git_utils.get_latest_commit('gh-pages'), clone_rev)

        assertPopen(['mike', 'set-default', '--ignore', '1.0'])
        self.assertEqual(git_utils.get_latest_commit('gh-pages^'), clone_rev)

        assertPopen(['mike', 'set-default', '--rebase', '1.0'])
        self.assertEqual(git_utils.get_latest_commit('gh-pages^'), origin_rev)
コード例 #5
0
    def test_diverged_remote(self):
        stage_dir('serve_clone')
        check_call_silent(['git', 'clone', self.stage, '.'])
        check_call_silent(['git', 'fetch', 'origin', 'gh-pages:gh-pages'])
        git_config()

        with pushd(self.stage):
            with git_utils.Commit('gh-pages', 'add file') as commit:
                commit.add_file(
                    git_utils.FileInfo('file-origin.txt', 'this is some text'))
            origin_rev = git_utils.get_latest_commit('gh-pages')

        with git_utils.Commit('gh-pages', 'add file') as commit:
            commit.add_file(git_utils.FileInfo('file.txt',
                                               'this is some text'))
        clone_rev = git_utils.get_latest_commit('gh-pages')
        check_call_silent(['git', 'fetch', 'origin'])

        self._check_serve(err_output=(
            'warning: gh-pages has diverged from origin/gh-pages\n' +
            '  Pass --ignore to ignore this or --rebase to rebase onto ' +
            'remote\n'))
        self.assertEqual(git_utils.get_latest_commit('gh-pages'), clone_rev)

        self._check_serve(['--ignore'])
        self.assertEqual(git_utils.get_latest_commit('gh-pages'), clone_rev)

        self._check_serve(['--rebase'])
        self.assertEqual(git_utils.get_latest_commit('gh-pages'), origin_rev)
コード例 #6
0
ファイル: test_git_utils.py プロジェクト: java-tools/mike
    def test_push(self):
        commit_files(['file2.txt'], 'add file2')
        clone_rev = git_utils.get_latest_commit('master')
        git_utils.push_branch('origin', 'master')

        with pushd(self.origin):
            origin_rev = git_utils.get_latest_commit('master')
            self.assertEqual(origin_rev, clone_rev)
コード例 #7
0
    def test_local_empty(self):
        origin_rev = git_utils.get_latest_commit('gh-pages')

        stage_dir('serve_clone')
        check_call_silent(['git', 'clone', self.stage, '.'])
        git_config()

        self._check_serve()
        self.assertEqual(git_utils.get_latest_commit('gh-pages'), origin_rev)
コード例 #8
0
ファイル: test_git_utils.py プロジェクト: java-tools/mike
    def test_nonexistent_local(self):
        check_call_silent(['git', 'checkout', '-b', 'branch'])
        check_call_silent(['git', 'branch', '-d', 'master'])
        with pushd(self.origin):
            origin_rev = git_utils.get_latest_commit('master')

        git_utils.try_rebase_branch('origin', 'master')
        local_rev = git_utils.get_latest_commit('master')
        self.assertEqual(local_rev, origin_rev)
コード例 #9
0
ファイル: test_set_default.py プロジェクト: jimporter/mike
    def test_local_empty(self):
        self._deploy()
        origin_rev = git_utils.get_latest_commit('gh-pages')

        stage_dir('set_default_clone')
        check_call_silent(['git', 'clone', self.stage, '.'])
        git_config()

        assertPopen(['mike', 'set-default', '1.0'])
        self.assertEqual(git_utils.get_latest_commit('gh-pages^'), origin_rev)
コード例 #10
0
ファイル: test_delete.py プロジェクト: jimporter/mike
    def test_remote_empty(self):
        stage_dir('delete_clone')
        check_call_silent(['git', 'clone', self.stage, '.'])
        git_config()

        self._deploy(versions=['1.0'])
        old_rev = git_utils.get_latest_commit('gh-pages')

        assertPopen(['mike', 'delete', '1.0'])
        self.assertEqual(git_utils.get_latest_commit('gh-pages^'), old_rev)
コード例 #11
0
ファイル: test_git_utils.py プロジェクト: java-tools/mike
    def test_behind(self):
        old_rev = git_utils.get_latest_commit('master')
        with pushd(self.origin):
            commit_files(['file2.txt'], 'add file2')
            origin_rev = git_utils.get_latest_commit('master')
        check_call_silent(['git', 'fetch', 'origin'])

        git_utils.try_rebase_branch('origin', 'master')
        new_rev = git_utils.get_latest_commit('master')
        self.assertNotEqual(old_rev, origin_rev)
        self.assertEqual(new_rev, origin_rev)
コード例 #12
0
ファイル: test_git_utils.py プロジェクト: java-tools/mike
    def test_diverged(self):
        commit_files(['file2.txt'], 'add file2')
        old_rev = git_utils.get_latest_commit('master')
        with pushd(self.origin):
            commit_files(['file2-origin.txt'], 'add file2')
        check_call_silent(['git', 'fetch', 'origin'])

        self.assertRaises(git_utils.GitBranchDiverged,
                          git_utils.try_rebase_branch, 'origin', 'master')
        new_rev = git_utils.get_latest_commit('master')
        self.assertEqual(old_rev, new_rev)
コード例 #13
0
ファイル: test_git_utils.py プロジェクト: pblitz/mike
    def test_force_push(self):
        with pushd(self.origin):
            commit_file('file2.txt', 'add file2')

        commit_file('file2.txt', 'add file2 from clone')
        clone_rev = git_utils.get_latest_commit('master')
        git_utils.push_branch('origin', 'master', force=True)

        with pushd(self.origin):
            origin_rev = git_utils.get_latest_commit('master')
            self.assertEqual(origin_rev, clone_rev)
コード例 #14
0
    def test_local_empty(self):
        with git_utils.Commit('gh-pages', 'add file') as commit:
            commit.add_file(git_utils.FileInfo('file.txt',
                                               'this is some text'))
        origin_rev = git_utils.get_latest_commit('gh-pages')

        stage_dir('deploy_clone')
        check_call_silent(['git', 'clone', self.stage, '.'])
        git_config()

        assertPopen(['mike', 'deploy', '1.0'])
        self.assertEqual(git_utils.get_latest_commit('gh-pages^'), origin_rev)
コード例 #15
0
ファイル: test_git_utils.py プロジェクト: pblitz/mike
    def test_diverged_force(self):
        commit_file('file2.txt', 'add file2')
        old_rev = git_utils.get_latest_commit('master')
        with pushd(self.origin):
            commit_file('file2-origin.txt', 'add file2')
            origin_rev = git_utils.get_latest_commit('master')
        check_call_silent(['git', 'fetch', 'origin'])

        git_utils.try_rebase_branch('origin', 'master', force=True)
        new_rev = git_utils.get_latest_commit('master')
        self.assertNotEqual(old_rev, origin_rev)
        self.assertEqual(new_rev, origin_rev)
コード例 #16
0
    def test_push(self):
        check_call_silent(['git', 'config', 'receive.denyCurrentBranch',
                           'ignore'])
        stage_dir('deploy_clone')
        check_call_silent(['git', 'clone', self.stage, '.'])
        git_config()

        assertPopen(['mike', 'deploy', '1.0', '-p'])
        clone_rev = git_utils.get_latest_commit('gh-pages')

        with pushd(self.stage):
            self.assertEqual(git_utils.get_latest_commit('gh-pages'),
                             clone_rev)
コード例 #17
0
    def test_behind_remote(self):
        stage_dir('serve_clone')
        check_call_silent(['git', 'clone', self.stage, '.'])
        check_call_silent(['git', 'fetch', 'origin', 'gh-pages:gh-pages'])
        git_config()

        with pushd(self.stage):
            with git_utils.Commit('gh-pages', 'add file') as commit:
                commit.add_file(
                    git_utils.FileInfo('file.txt', 'this is some text'))
            origin_rev = git_utils.get_latest_commit('gh-pages')
        check_call_silent(['git', 'fetch', 'origin'])

        self._check_serve()
        self.assertEqual(git_utils.get_latest_commit('gh-pages'), origin_rev)
コード例 #18
0
ファイル: test_delete.py プロジェクト: jimporter/mike
    def test_ahead_remote(self):
        self._deploy(versions=['1.0'])
        origin_rev = git_utils.get_latest_commit('gh-pages')

        stage_dir('deploy_clone')
        check_call_silent(['git', 'clone', self.stage, '.'])
        check_call_silent(['git', 'fetch', 'origin', 'gh-pages:gh-pages'])
        git_config()

        self._deploy(versions=['2.0'])
        old_rev = git_utils.get_latest_commit('gh-pages')

        assertPopen(['mike', 'delete', '1.0'])
        self.assertEqual(git_utils.get_latest_commit('gh-pages^'), old_rev)
        self.assertEqual(git_utils.get_latest_commit('gh-pages^^'), origin_rev)
コード例 #19
0
ファイル: test_set_default.py プロジェクト: jimporter/mike
    def test_behind_remote(self):
        self._deploy()

        stage_dir('set_default_clone')
        check_call_silent(['git', 'clone', self.stage, '.'])
        check_call_silent(['git', 'fetch', 'origin', 'gh-pages:gh-pages'])
        git_config()

        with pushd(self.stage):
            self._deploy(versions=['2.0'])
            origin_rev = git_utils.get_latest_commit('gh-pages')
        check_call_silent(['git', 'fetch', 'origin'])

        assertPopen(['mike', 'set-default', '1.0'])
        self.assertEqual(git_utils.get_latest_commit('gh-pages^'), origin_rev)
コード例 #20
0
    def _test_deploy(self, expected_message=None,
                     expected_versions=[versions.VersionInfo('1.0')],
                     redirect=True, directory='.'):
        rev = git_utils.get_latest_commit('master', short=True)
        message = assertPopen(['git', 'log', '-1', '--pretty=%B']).rstrip()
        if expected_message:
            self.assertEqual(message, expected_message)
        else:
            self.assertRegex(
                message,
                r'^Deployed {} to {}( in .*)? with MkDocs \S+ and mike \S+$'
                .format(rev, expected_versions[0].version)
            )

        files = {'versions.json'}
        for v in expected_versions:
            v_str = str(v.version)
            files |= {v_str, v_str + '/index.html',
                      v_str + '/css/version-select.css',
                      v_str + '/js/version-select.js'}
            for a in v.aliases:
                files |= {a, a + '/index.html'}
                if not redirect:
                    files |= {a + '/css/version-select.css',
                              a + '/js/version-select.js'}
        assertDirectory(directory, files, allow_extra=True)

        with open(os.path.join(directory, 'versions.json')) as f:
            self.assertEqual(list(versions.Versions.loads(f.read())),
                             expected_versions)
コード例 #21
0
    def test_ahead_remote(self):
        origin_rev = git_utils.get_latest_commit('gh-pages')

        stage_dir('list_clone')
        check_call_silent(['git', 'clone', self.stage, '.'])
        check_call_silent(['git', 'fetch', 'origin', 'gh-pages:gh-pages'])
        git_config()

        with git_utils.Commit('gh-pages', 'add file') as commit:
            commit.add_file(git_utils.FileInfo('file.txt',
                                               'this is some text'))
        clone_rev = git_utils.get_latest_commit('gh-pages')

        self._check_list()
        self.assertEqual(git_utils.get_latest_commit('gh-pages'), clone_rev)
        self.assertEqual(git_utils.get_latest_commit('gh-pages^'), origin_rev)
コード例 #22
0
ファイル: test_deploy.py プロジェクト: pblitz/mike
    def _test_deploy(self, expected_message=None,
                     expected_versions=[versions.VersionInfo('1.0')]):
        rev = git_utils.get_latest_commit('master', short=True)
        message = subprocess.check_output(['git', 'log', '-1', '--pretty=%B'],
                                          universal_newlines=True).rstrip()
        if expected_message:
            self.assertEqual(message, expected_message)
        else:
            self.assertRegex(
                message,
                r'^Deployed {} to {} with MkDocs \S+ and mike \S+$'
                .format(rev, expected_versions[0].version)
            )

        dirs = set()
        for i in expected_versions:
            dirs |= {str(i.version)} | i.aliases
        contents = {'versions.json'} | set(chain.from_iterable(
            (d, d + '/index.html') for d in dirs
        ))
        assertDirectory('.', contents, allow_extra=True)

        with open('versions.json') as f:
            self.assertEqual(list(versions.Versions.loads(f.read())),
                             expected_versions)
コード例 #23
0
ファイル: test_git_utils.py プロジェクト: java-tools/mike
    def test_ahead(self):
        rev = git_utils.get_latest_commit('master')
        commit_files(['file2.txt'], 'second commit')

        self.assertEqual(git_utils.get_merge_base('branch', 'master'), rev)
        self.assertEqual(git_utils.compare_branches('branch', 'master'),
                         git_utils.BranchStatus.ahead)
コード例 #24
0
ファイル: test_git_utils.py プロジェクト: java-tools/mike
    def test_behind(self):
        rev = git_utils.get_latest_commit('master')
        check_call_silent(['git', 'checkout', 'master'])
        commit_files(['file2.txt'], 'second commit')

        self.assertEqual(git_utils.get_merge_base('branch', 'master'), rev)
        self.assertEqual(git_utils.compare_branches('branch', 'master'),
                         git_utils.BranchStatus.behind)
コード例 #25
0
    def _test_deploy(self,
                     expected_message=None,
                     expected_versions=[versions.VersionInfo('1.0')]):
        if not expected_message:
            rev = git_utils.get_latest_commit('master', short=True)
            expected_message = (
                r'^Deployed {} to {} with MkDocs \S+ and mike \S+$'.format(
                    rev, expected_versions[0].version))

        self._test_state(expected_message, expected_versions)
コード例 #26
0
ファイル: test_commands.py プロジェクト: java-tools/mike
    def _test_deploy(self,
                     expected_message=None,
                     expected_versions=[versions.VersionInfo('1.0')],
                     **kwargs):
        if not expected_message:
            rev = git_utils.get_latest_commit('master', short=True)
            expected_message = (
                r'^Deployed {} to {}( in .*)? with MkDocs \S+ and mike \S+$'.
                format(rev, expected_versions[0].version))

        if os.path.exists(self.cfg.site_dir):
            shutil.rmtree(self.cfg.site_dir)
        self._test_state(expected_message, expected_versions, **kwargs)
コード例 #27
0
    def test_diverged_remote(self):
        with git_utils.Commit('gh-pages', 'add file') as commit:
            commit.add_file(git_utils.FileInfo(
                'file.txt', 'this is some text'
            ))

        stage_dir('deploy_clone')
        check_call_silent(['git', 'clone', self.stage, '.'])
        check_call_silent(['git', 'fetch', 'origin', 'gh-pages:gh-pages'])
        git_config()

        with pushd(self.stage):
            with git_utils.Commit('gh-pages', 'add file') as commit:
                commit.add_file(git_utils.FileInfo(
                    'file2-origin.txt', 'this is some text'
                ))
            origin_rev = git_utils.get_latest_commit('gh-pages')

        with git_utils.Commit('gh-pages', 'add file') as commit:
            commit.add_file(git_utils.FileInfo(
                'file2.txt', 'this is some text'
            ))
        clone_rev = git_utils.get_latest_commit('gh-pages')
        check_call_silent(['git', 'fetch', 'origin'])

        assertOutput(self, ['mike', 'deploy', '1.0'], output=(
            'error: gh-pages has diverged from origin/gh-pages\n' +
            '  Pass --ignore to ignore this or --rebase to rebase onto ' +
            'remote\n'
        ), returncode=1)
        self.assertEqual(git_utils.get_latest_commit('gh-pages'), clone_rev)

        assertPopen(['mike', 'deploy', '1.0', '--ignore'])
        self.assertEqual(git_utils.get_latest_commit('gh-pages^'), clone_rev)

        assertPopen(['mike', 'deploy', '1.0', '--rebase'])
        self.assertEqual(git_utils.get_latest_commit('gh-pages^'), origin_rev)
コード例 #28
0
ファイル: test_git_utils.py プロジェクト: java-tools/mike
 def test_short(self):
     rev = git_utils.get_latest_commit('master', short=True)
     expected_rev = check_output(['git', 'rev-parse', 'master']).rstrip()
     self.assertEqual(rev, expected_rev[0:len(rev)])
コード例 #29
0
ファイル: test_git_utils.py プロジェクト: java-tools/mike
 def test_even(self):
     rev = git_utils.get_latest_commit('master')
     self.assertEqual(git_utils.get_merge_base('branch', 'master'), rev)
     self.assertEqual(git_utils.compare_branches('branch', 'master'),
                      git_utils.BranchStatus.even)
コード例 #30
0
 def _test_rev(self, branch):
     clone_rev = git_utils.get_latest_commit(branch)
     with pushd(self.stage_origin):
         self.assertEqual(git_utils.get_latest_commit(branch), clone_rev)