Esempio n. 1
0
    def test_latest_no_diff_for_bare_repo(self, target):
        '''
        This test ensures that we don't attempt to diff when cloning a repo
        using either bare=True or mirror=True.
        '''
        name = 'https://foo.com/bar/baz.git'
        gitdir = os.path.join(target, 'refs')
        isdir_mock = MagicMock(
            side_effect=lambda path: DEFAULT if path != gitdir else True)

        branches = ['foo', 'bar', 'baz']
        tags = ['v1.1.0', 'v.1.1.1', 'v1.2.0']
        local_head = 'b9ef06ab6b7524eb7c27d740dbbd5109c6d75ee4'
        remote_head = 'eef672c1ec9b8e613905dbcd22a4612e31162807'

        git_diff = Mock()
        dunder_salt = {
            'git.current_branch':
            MagicMock(return_value=branches[0]),
            'git.config_get_regexp':
            MagicMock(return_value={}),
            'git.diff':
            git_diff,
            'git.fetch':
            MagicMock(return_value={}),
            'git.is_worktree':
            MagicMock(return_value=False),
            'git.list_branches':
            MagicMock(return_value=branches),
            'git.list_tags':
            MagicMock(return_value=tags),
            'git.remote_refs':
            MagicMock(return_value={'HEAD': remote_head}),
            'git.remotes':
            MagicMock(return_value={
                'origin': {
                    'fetch': name,
                    'push': name
                },
            }),
            'git.rev_parse':
            MagicMock(side_effect=git_state.CommandExecutionError()),
            'git.revision':
            MagicMock(return_value=local_head),
            'git.version':
            MagicMock(return_value='1.8.3.1'),
        }
        with patch('os.path.isdir', isdir_mock), \
                patch.dict(git_state.__salt__, dunder_salt):
            result = git_state.latest(
                name=name,
                target=target,
                mirror=True,  # mirror=True implies bare=True
            )
            assert result['result'] is True, result
            git_diff.assert_not_called()
Esempio n. 2
0
    def test_latest_no_diff_for_bare_repo(self, target):
        """
        This test ensures that we don't attempt to diff when cloning a repo
        using either bare=True or mirror=True.
        """
        name = "https://foo.com/bar/baz.git"
        gitdir = os.path.join(target, "refs")
        isdir_mock = MagicMock(
            side_effect=lambda path: DEFAULT if path != gitdir else True)

        branches = ["foo", "bar", "baz"]
        tags = ["v1.1.0", "v.1.1.1", "v1.2.0"]
        local_head = "b9ef06ab6b7524eb7c27d740dbbd5109c6d75ee4"
        remote_head = "eef672c1ec9b8e613905dbcd22a4612e31162807"

        git_diff = Mock()
        dunder_salt = {
            "git.current_branch":
            MagicMock(return_value=branches[0]),
            "git.config_get_regexp":
            MagicMock(return_value={}),
            "git.diff":
            git_diff,
            "git.fetch":
            MagicMock(return_value={}),
            "git.is_worktree":
            MagicMock(return_value=False),
            "git.list_branches":
            MagicMock(return_value=branches),
            "git.list_tags":
            MagicMock(return_value=tags),
            "git.remote_refs":
            MagicMock(return_value={"HEAD": remote_head}),
            "git.remotes":
            MagicMock(return_value={"origin": {
                "fetch": name,
                "push": name
            }}),
            "git.rev_parse":
            MagicMock(side_effect=git_state.CommandExecutionError()),
            "git.revision":
            MagicMock(return_value=local_head),
            "git.version":
            MagicMock(return_value="1.8.3.1"),
        }
        with patch("os.path.isdir",
                   isdir_mock), patch.dict(git_state.__salt__, dunder_salt):
            result = git_state.latest(
                name=name,
                target=target,
                mirror=True,  # mirror=True implies bare=True
            )
            assert result["result"] is True, result
            git_diff.assert_not_called()