def test_aliases(self): if sys.version_info[0] < 3: raise test.SkipTest( 'Argparse does not support aliases in Python < 3') self.reset_backend() self.app = self.make_app( APP, argument_handler=ArgparseArgumentHandler, handlers=[ Base, Aliases, ], ) with self.app as app: app._meta.argv = ['aliases', 'aliases-cmd1'] res = app.run() self.eq(res, "Inside Aliases.aliases_cmd1") app._meta.argv = ['aliases', 'aliases-cmd-1'] app._setup_arg_handler() res = app.run() self.eq(res, "Inside Aliases.aliases_cmd1") app._meta.argv = ['aliases-controller', 'aliases-cmd1'] app._setup_arg_handler() res = app.run() self.eq(res, "Inside Aliases.aliases_cmd1") app._meta.argv = ['ac', 'ac1'] app._setup_arg_handler() res = app.run() self.eq(res, "Inside Aliases.aliases_cmd1")
def test_controller_default_double_nested(self): if not ARGPARSE_SUPPORTS_DEFAULTS: raise test.SkipTest( 'Argparse does not support default commands in Python < 3.4') self.app._meta.argv = ['third', 'fifth'] with self.app as app: res = app.run() self.eq(res, "Inside Fifth.default")
def test_base_default(self): if not ARGPARSE_SUPPORTS_DEFAULTS: raise test.SkipTest( 'Argparse does not support default commands in Python < 3.4') with self.app as app: res = app.run() self.eq(res, "Inside Base.default")
def test_argument_conflict(self): try: app = self.make_app(base_controller=TestController) app.handler.register(ArgumentConflict) app.setup() app.run() except NameError as e: # This is a hack due to a Travis-CI Bug: # https://github.com/travis-ci/travis-ci/issues/998 if e.args[0] == "global name 'ngettext' is not defined": bug = "https://github.com/travis-ci/travis-ci/issues/998" raise test.SkipTest("Travis-CI Bug: %s" % bug) else: raise
def test_alternative_default(self): if not ARGPARSE_SUPPORTS_DEFAULTS: raise test.SkipTest( 'Argparse does not support default commands in Python < 3.4') self.reset_backend() self.app = self.make_app( APP, argv=['alternative_default'], argument_handler=ArgparseArgumentHandler, handlers=[ Base, AlternativeDefault, ], ) with self.app as app: res = app.run() self.eq(res, "Inside AlternativeDefault.alternative_default")
def test_bad_alternative_default_command(self): if not ARGPARSE_SUPPORTS_DEFAULTS: raise test.SkipTest( 'Argparse does not support default commands in Python < 3.4') self.reset_backend() self.app = self.make_app( APP, argv=['bad_alternative_default'], argument_handler=ArgparseArgumentHandler, handlers=[ Base, BadAlternativeDefault, ], ) try: with self.app as app: res = app.run() except FrameworkError as e: res = re.match("(.*)does not exist(.*)bogus_default(.*)", e.__str__()) self.ok(res) raise
"""Tests for cement.ext.ext_genshi.""" import sys import random from cement.core import exc, foundation, handler, backend, controller from cement.utils import test if sys.version_info[0] < 3: import configobj else: raise test.SkipTest('Genshi does not support Python 3') # pragma: no cover class GenshiExtTestCase(test.CementExtTestCase): def setUp(self): super(GenshiExtTestCase, self).setUp() self.app = self.make_app('tests', extensions=['genshi'], output_handler='genshi', argv=[]) def test_genshi(self): self.app.setup() rando = random.random() res = self.app.render(dict(foo=rando), 'test_template.genshi') genshi_res = "foo equals %s\n" % rando self.eq(res, genshi_res) @test.raises(exc.FrameworkError) def test_genshi_bad_template(self):
"""Tests for cement.ext.ext_configobj.""" import os import sys from tempfile import mkstemp from cement.core import handler, backend, log from cement.utils import test from cement.utils.misc import rando if sys.version_info[0] < 3: import configobj else: raise test.SkipTest( 'ConfigObj does not support Python 3') # pragma: no cover APP = rando()[:12] CONFIG = """ [my_section] my_param = my_value """ class ConfigObjExtTestCase(test.CementTestCase): def setUp(self): _, self.tmppath = mkstemp() f = open(self.tmppath, 'w+') f.write(CONFIG) f.close() self.app = self.make_app(APP, extensions=['configobj'],
"""Tests for cement.ext.ext_memcached.""" import sys from time import sleep from random import random from cement.core import handler from cement.utils import test from cement.utils.misc import init_defaults if sys.version_info[0] < 3: import pylibmc else: raise test.SkipTest('pylibmc does not support Python 3') # pragma: no cover class MemcachedExtTestCase(test.CementTestCase): def setUp(self): self.key = "cement-tests-random-key-%s" % random() defaults = init_defaults('tests', 'cache.memcached') defaults['cache.memcached']['hosts'] = '127.0.0.1, localhost' self.app = self.make_app('tests', config_defaults=defaults, extensions=['memcached'], cache_handler='memcached', ) self.app.setup() def tearDown(self): self.app.cache.delete(self.key) def test_memcache_list_type_config(self): defaults = init_defaults('tests', 'cache.memcached')
"""Tests for cement.ext.ext_reload_config.""" import platform from cement.utils import test system = platform.system() if not system in ['Linux']: raise test.SkipTest('ext_reload_config not supported on %s' % system) import os import shutil import signal from time import sleep from cement.utils.misc import rando from cement.ext import ext_reload_config APP = rando()[:12] CONFIG1 = """ [%s] foo = bar1 """ % APP CONFIG2 = """ [%s] foo = bar2 """ % APP PLUGIN_CONFIG1 = """ [bogus] enable_plugin = false