import mock
import pytest
import sys

from pre_commit_hooks.util import entry


@pytest.fixture
def entry_func():
    @entry
    def func(argv):
        return argv

    return func


def test_explicitly_passed_argv_are_passed(entry_func):
    input = object()
    ret = entry_func(input)
    assert ret is input


def test_no_arguments_passed_uses_argv(entry_func):
    argv = [1, 2, 3, 4]
    with mock.patch.object(sys, 'argv', argv):
        ret = entry_func()
        assert ret == argv[1:]
