cli.test_alias: move skip-unless utility to common_util.py

next to the other skip-unless function
This commit is contained in:
Brian Warner 2018-03-28 15:30:24 -07:00
parent 0616aa7de7
commit ce473bd5f4
2 changed files with 11 additions and 12 deletions

View File

@ -4,22 +4,14 @@ from mock import patch
from twisted.trial import unittest
from twisted.internet.defer import inlineCallbacks
from allmydata.util.encodingutil import unicode_to_argv, get_io_encoding
from allmydata.util.encodingutil import unicode_to_argv
from allmydata.scripts.common import get_aliases
from allmydata.test.no_network import GridTestMixin
from .common import CLITestMixin
from ..common_util import skip_if_cannot_represent_argv
# see also test_create_alias
def skip_unless_unicode():
try:
etudes_arg = u"\u00E9tudes".encode(get_io_encoding())
del etudes_arg
except UnicodeEncodeError:
raise unittest.SkipTest("A non-ASCII command argument could not be encoded on this platform.")
class ListAlias(GridTestMixin, CLITestMixin, unittest.TestCase):
@inlineCallbacks
@ -55,7 +47,7 @@ class ListAlias(GridTestMixin, CLITestMixin, unittest.TestCase):
this
"""
self.basedir = "cli/ListAlias/test_list_unicode_mismatch_json"
skip_unless_unicode()
skip_if_cannot_represent_argv(u"tahoe\u263A")
self.set_up_grid(oneshare=True)
rc, stdout, stderr = yield self.do_cli(
@ -87,7 +79,7 @@ class ListAlias(GridTestMixin, CLITestMixin, unittest.TestCase):
@inlineCallbacks
def test_list_unicode_mismatch(self):
self.basedir = "cli/ListAlias/test_list_unicode_mismatch"
skip_unless_unicode()
skip_if_cannot_represent_argv(u"tahoe\u263A")
self.set_up_grid(oneshare=True)
rc, stdout, stderr = yield self.do_cli(

View File

@ -22,6 +22,13 @@ def skip_if_cannot_represent_filename(u):
except UnicodeEncodeError:
raise unittest.SkipTest("A non-ASCII filename could not be encoded on this platform.")
def skip_if_cannot_represent_argv(u):
precondition(isinstance(u, unicode))
try:
u.encode(get_io_encoding())
except UnicodeEncodeError:
raise unittest.SkipTest("A non-ASCII argv could not be encoded on this platform.")
def run_cli(verb, *args, **kwargs):
precondition(not [True for arg in args if not isinstance(arg, str)],
"arguments to do_cli must be strs -- convert using unicode_to_argv", args=args)