Skip to content

Commit

Permalink
Test verbose/quite level specified via env var
Browse files Browse the repository at this point in the history
  • Loading branch information
McSinyx committed Jul 22, 2020
1 parent 88e8852 commit 344cacc
Showing 1 changed file with 46 additions and 18 deletions.
64 changes: 46 additions & 18 deletions tests/unit/test_options.py
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,52 @@ def test_subcommand_option_before_subcommand_fails(self):
main(['--find-links', 'F1', 'fake'])


class TestCountOptions(AddFakeCommandMixin):

@pytest.mark.parametrize('option', ('verbose', 'quiet'))
@pytest.mark.parametrize('value', range(4))
def test_cli_long(self, option, value):
flags = ['--{}'.format(option)] * value
opt1, args1 = main(flags+['fake'])
opt2, args2 = main(['fake']+flags)
assert getattr(opt1, option) == getattr(opt2, option) == value

@pytest.mark.parametrize('option', ('verbose', 'quiet'))
@pytest.mark.parametrize('value', range(1, 4))
def test_cli_short(self, option, value):
flag = '-' + option[0]*value
opt1, args1 = main([flag, 'fake'])
opt2, args2 = main(['fake', flag])
assert getattr(opt1, option) == getattr(opt2, option) == value

@pytest.mark.parametrize('option', ('verbose', 'quiet'))
@pytest.mark.parametrize('value', range(4))
def test_env_var(self, option, value, monkeypatch):
monkeypatch.setenv('PIP_'+option.upper(), str(value))
assert getattr(main(['fake'])[0], option) == value

@pytest.mark.parametrize('option', ('verbose', 'quiet'))
@pytest.mark.parametrize('value', (-1, 'foobar'))
def test_env_var_invalid(self, option, value, monkeypatch):
monkeypatch.setenv('PIP_'+option.upper(), str(value))
with pytest.raises(SystemExit):
main(['fake'])

# Undocumented, support for backward compatibility
@pytest.mark.parametrize('option', ('verbose', 'quiet'))
@pytest.mark.parametrize('value', ('no', 'false'))
def test_env_var_false(self, option, value, monkeypatch):
monkeypatch.setenv('PIP_'+option.upper(), str(value))
assert getattr(main(['fake'])[0], option) == 0

# Undocumented, support for backward compatibility
@pytest.mark.parametrize('option', ('verbose', 'quiet'))
@pytest.mark.parametrize('value', ('yes', 'true'))
def test_env_var_true(self, option, value, monkeypatch):
monkeypatch.setenv('PIP_'+option.upper(), str(value))
assert getattr(main(['fake'])[0], option) == 1


class TestGeneralOptions(AddFakeCommandMixin):

# the reason to specifically test general options is due to the
Expand All @@ -310,24 +356,6 @@ def test_require_virtualenv(self):
assert options1.require_venv
assert options2.require_venv

def test_verbose(self):
options1, args1 = main(['--verbose', 'fake'])
options2, args2 = main(['fake', '--verbose'])
assert options1.verbose == options2.verbose == 1

def test_quiet(self):
options1, args1 = main(['--quiet', 'fake'])
options2, args2 = main(['fake', '--quiet'])
assert options1.quiet == options2.quiet == 1

options3, args3 = main(['--quiet', '--quiet', 'fake'])
options4, args4 = main(['fake', '--quiet', '--quiet'])
assert options3.quiet == options4.quiet == 2

options5, args5 = main(['--quiet', '--quiet', '--quiet', 'fake'])
options6, args6 = main(['fake', '--quiet', '--quiet', '--quiet'])
assert options5.quiet == options6.quiet == 3

def test_log(self):
options1, args1 = main(['--log', 'path', 'fake'])
options2, args2 = main(['fake', '--log', 'path'])
Expand Down

0 comments on commit 344cacc

Please sign in to comment.