def test_git_clone_no_url(self, mock_shell):
        parsed_options = {'url': None}

        options = Values(defaults=parsed_options)

        # test

        builder.git_clone(options)

        # validation

        self.assertEqual(mock_shell.call_count, 0)
    def test_git_clone_no_url(self, mock_shell):
        parsed_options = {
            'url': None
        }

        options = Values(defaults=parsed_options)

        # test

        builder.git_clone(options)

        # validation

        self.assertEqual(mock_shell.call_count, 0)
    def test_git_clone_override_path(self, mock_shell):
        parsed_options = {'url': 'git://puppet/project.git', 'path': None}

        options = Values(defaults=parsed_options)

        # test

        builder.git_clone(options)

        # validation

        mock_shell.assert_called_with('git clone --recursive %s' % options.url)

        self.assertEqual(mock_shell.call_count, 1)
        self.assertEqual(options.path, 'project')
    def test_git_clone(self, mock_shell):
        parsed_options = {
            'url': 'git://puppet/project.git',
            'path': 'puppet/modules'
        }

        options = Values(defaults=parsed_options)

        # test

        builder.git_clone(options)

        # validation

        mock_shell.assert_called_with('git clone --recursive %s' % options.url)

        self.assertEqual(mock_shell.call_count, 1)
        self.assertEqual(options.path, 'puppet/modules')