aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorArthur Zamarin <arthurzam@gentoo.org>2022-11-19 14:51:13 +0200
committerArthur Zamarin <arthurzam@gentoo.org>2022-11-19 14:51:13 +0200
commit9714e4785e1ffc56a08f042011b5a966c7520a1f (patch)
treef1929e75e85c0e41f424075653f8dbce4df58581 /tests
parentshowkw: use color 90 instead of 30 (diff)
downloadpkgdev-9714e4785e1ffc56a08f042011b5a966c7520a1f.tar.gz
pkgdev-9714e4785e1ffc56a08f042011b5a966c7520a1f.tar.bz2
pkgdev-9714e4785e1ffc56a08f042011b5a966c7520a1f.zip
cli: add support for NOCOLOR to disable colors
Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/scripts/test_pkgdev_showkw.py60
1 files changed, 42 insertions, 18 deletions
diff --git a/tests/scripts/test_pkgdev_showkw.py b/tests/scripts/test_pkgdev_showkw.py
index ea64be1..fe06be9 100644
--- a/tests/scripts/test_pkgdev_showkw.py
+++ b/tests/scripts/test_pkgdev_showkw.py
@@ -1,11 +1,14 @@
+import textwrap
from functools import partial
-from typing import NamedTuple, List
+from typing import List, NamedTuple
from unittest.mock import patch
+
import pytest
+from snakeoil.contexts import chdir, os_environ
-from snakeoil.contexts import chdir
from pkgdev.scripts import run
+
class Profile(NamedTuple):
"""Profile record used to create profiles in a repository."""
path: str
@@ -16,10 +19,11 @@ class Profile(NamedTuple):
eapi: str = '5'
class TestPkgdevShowkwParseArgs:
+ args = ('showkw', '--config', 'no')
def test_missing_target(self, capsys, tool):
with pytest.raises(SystemExit):
- tool.parse_args(['showkw', '--config', 'no'])
+ tool.parse_args(self.args)
captured = capsys.readouterr()
assert captured.err.strip() == (
'pkgdev showkw: error: missing target argument and not in a supported repo')
@@ -27,15 +31,37 @@ class TestPkgdevShowkwParseArgs:
def test_unknown_arches(self, capsys, tool, make_repo):
repo = make_repo(arches=['amd64'])
with pytest.raises(SystemExit):
- tool.parse_args(['showkw', '--config', 'no', '-a', 'unknown', '-r', repo.location])
+ tool.parse_args([*self.args, '-a', 'unknown', '-r', repo.location])
captured = capsys.readouterr()
assert captured.err.strip() == (
"pkgdev showkw: error: unknown arch: 'unknown' (choices: amd64)")
+ def test_no_color(self, tool, make_repo, tmp_path):
+ repo = make_repo(arches=['amd64'])
+ repo.create_ebuild('foo/bar-0', keywords=('x86'))
+
+ (config_file := tmp_path / 'pkgcheck.conf').write_text(textwrap.dedent('''\
+ [DEFAULT]
+ showkw.color = true
+ '''))
+
+ def parse(*args):
+ options, _ = tool.parse_args(['showkw', '-r', repo.location, 'foo/bar',
+ '--config', str(config_file), *args])
+ return options
+
+ assert parse().color is True
+ with os_environ(NOCOLOR='1'):
+ # NOCOLOR overrides config file
+ assert parse().color is False
+ # cmd line option overrides NOCOLOR
+ assert parse('--color', 'n').color is False
+ assert parse('--color', 'y').color is True
+
class TestPkgdevShowkw:
script = staticmethod(partial(run, 'pkgdev'))
- base_args = ['pkgdev', 'showkw', '--config', 'n']
+ base_args = ('pkgdev', 'showkw', '--config', 'n', '--color', 'n')
def _create_repo(self, make_repo):
repo = make_repo(arches=['amd64', 'ia64', 'mips', 'x86'])
@@ -51,7 +77,7 @@ class TestPkgdevShowkw:
with patch('sys.argv', [*self.base_args, "--format", "presto", *args]), \
pytest.raises(SystemExit) as excinfo:
self.script()
- assert excinfo.value.code == None
+ assert excinfo.value.code is None
out, err = capsys.readouterr()
assert not err
lines = out.split('\n')
@@ -67,7 +93,7 @@ class TestPkgdevShowkw:
with patch('sys.argv', [*self.base_args, '-r', repo.location, 'foo/bar']), \
pytest.raises(SystemExit) as excinfo:
self.script()
- assert excinfo.value.code == None
+ assert excinfo.value.code is None
out, err = capsys.readouterr()
assert not err
assert out.split('\n')[0] == "keywords for foo/bar:"
@@ -78,7 +104,7 @@ class TestPkgdevShowkw:
with patch('sys.argv', [*self.base_args, '-r', repo.location, 'bar']), \
pytest.raises(SystemExit) as excinfo:
self.script()
- assert excinfo.value.code == None
+ assert excinfo.value.code is None
out, err = capsys.readouterr()
assert not err
assert out.split('\n')[0] == "keywords for foo/bar:"
@@ -90,7 +116,7 @@ class TestPkgdevShowkw:
pytest.raises(SystemExit) as excinfo, \
chdir(repo.location):
self.script()
- assert excinfo.value.code == None
+ assert excinfo.value.code is None
out, err = capsys.readouterr()
assert not err
assert out.split('\n')[0] == "keywords for foo/bar:"
@@ -102,7 +128,7 @@ class TestPkgdevShowkw:
pytest.raises(SystemExit) as excinfo, \
chdir(repo.location + '/foo/bar'):
self.script()
- assert excinfo.value.code == None
+ assert excinfo.value.code is None
_, err = capsys.readouterr()
assert not err
@@ -155,13 +181,11 @@ class TestPkgdevShowkw:
assert dict(amd64='~', ia64='o', mips='-', x86='~', slot='0').items() <= res['1'].items()
assert dict(amd64='+', ia64='*', mips='*', x86='-', slot='2', eapi='8').items() <= res['2'].items()
- @pytest.mark.parametrize(('arg', 'expected'),
- (
- ('--stable', {'amd64', 'x86'}),
- ('--unstable', {'amd64', 'ia64', 'mips', 'x86'}),
- ('--only-unstable', {'ia64', 'mips'}),
- )
- )
+ @pytest.mark.parametrize(('arg', 'expected'), (
+ pytest.param('--stable', {'amd64', 'x86'}, id='stable'),
+ pytest.param('--unstable', {'amd64', 'ia64', 'mips', 'x86'}, id='unstable'),
+ pytest.param('--only-unstable', {'ia64', 'mips'}, id='only-unstable'),
+ ))
def test_collapse(self, capsys, make_repo, arg, expected):
repo = self._create_repo(make_repo)
repo.create_ebuild('foo/bar-0', keywords=('amd64', '~ia64', '~mips', '~x86'))
@@ -170,7 +194,7 @@ class TestPkgdevShowkw:
pytest.raises(SystemExit) as excinfo:
self.script()
out, err = capsys.readouterr()
- assert excinfo.value.code == None
+ assert excinfo.value.code is None
assert not err
arches = set(out.split('\n')[0].split())
assert arches == expected