Use the real argparser instance for qtutils tests.
This commit is contained in:
parent
617cd8977b
commit
cabe5bf2a3
@ -20,9 +20,9 @@
|
||||
"""Tests for qutebrowser.utils.qtutils."""
|
||||
|
||||
import sys
|
||||
import argparse
|
||||
import unittest
|
||||
|
||||
from qutebrowser import qutebrowser
|
||||
from qutebrowser.utils import qtutils
|
||||
|
||||
|
||||
@ -82,53 +82,40 @@ class CheckOverflowTests(unittest.TestCase):
|
||||
self.assertEqual(newval, replacement)
|
||||
|
||||
|
||||
def argparser_exit(status=0, message=None): # pylint: disable=unused-argument
|
||||
"""Function to monkeypatch .exit() of the argparser so it doesn't exit."""
|
||||
raise Exception
|
||||
|
||||
|
||||
class GetQtArgsTests(unittest.TestCase):
|
||||
|
||||
"""Tests for get_args."""
|
||||
|
||||
def setUp(self):
|
||||
self.parser = argparse.ArgumentParser()
|
||||
|
||||
def _namespace(self, cmdline, flags=None, args=None):
|
||||
"""Get an argparse namespace object based on arguments given.
|
||||
|
||||
Args:
|
||||
cmdline: The given commandline.
|
||||
flags: A list of strings (argument names) for flags without an
|
||||
argument.
|
||||
args: A list of arguemnt names for flags with an argument.
|
||||
"""
|
||||
if flags is not None:
|
||||
for e in flags:
|
||||
self.parser.add_argument(e, action='store_true')
|
||||
if args is not None:
|
||||
for e in args:
|
||||
self.parser.add_argument(e, nargs=1)
|
||||
return self.parser.parse_args(cmdline)
|
||||
self.parser = qutebrowser.get_argparser()
|
||||
self.parser.exit = argparser_exit
|
||||
|
||||
def test_no_qt_args(self):
|
||||
"""Test commandline with no Qt arguments given."""
|
||||
ns = self._namespace(['--foo'], flags=['--foo'])
|
||||
self.assertEqual(qtutils.get_args(ns), [sys.argv[0]])
|
||||
args = self.parser.parse_args(['--debug'])
|
||||
self.assertEqual(qtutils.get_args(args), [sys.argv[0]])
|
||||
|
||||
def test_qt_flag(self):
|
||||
"""Test commandline with a Qt flag."""
|
||||
ns = self._namespace(['--foo', '--qt-reverse', '--bar'],
|
||||
flags=['--foo', '--qt-reverse', '--bar'])
|
||||
self.assertEqual(qtutils.get_args(ns), [sys.argv[0], '-reverse'])
|
||||
args = self.parser.parse_args(['--debug', '--qt-reverse', '--nocolor'])
|
||||
self.assertEqual(qtutils.get_args(args), [sys.argv[0], '-reverse'])
|
||||
|
||||
def test_qt_arg(self):
|
||||
"""Test commandline with a Qt argument."""
|
||||
ns = self._namespace(['--qt-stylesheet', 'foobar'],
|
||||
args=['--qt-stylesheet'])
|
||||
self.assertEqual(qtutils.get_args(ns), [sys.argv[0], '-stylesheet',
|
||||
'foobar'])
|
||||
args = self.parser.parse_args(['--qt-stylesheet', 'foobar'])
|
||||
self.assertEqual(qtutils.get_args(args), [sys.argv[0], '-stylesheet',
|
||||
'foobar'])
|
||||
|
||||
def test_qt_both(self):
|
||||
"""Test commandline with a Qt argument and flag."""
|
||||
ns = self._namespace(['--qt-stylesheet', 'foobar', '--qt-reverse'],
|
||||
flags=['--qt-reverse'], args=['--qt-stylesheet'])
|
||||
qt_args = qtutils.get_args(ns)
|
||||
args = self.parser.parse_args(['--qt-stylesheet', 'foobar',
|
||||
'--qt-reverse'])
|
||||
qt_args = qtutils.get_args(args)
|
||||
self.assertEqual(qt_args[0], sys.argv[0])
|
||||
self.assertIn('-reverse', qt_args)
|
||||
self.assertIn('-stylesheet', qt_args)
|
||||
|
Loading…
Reference in New Issue
Block a user