def test_alt(self): def func1(): return '1' def func2(): return '2' stdout, stderr = util.run(func1, alt=func2, args=['test']) self.assertFalse(stderr.getvalue()) self.assertEqual(stdout.getvalue(), '1\n') stdout, stderr = util.run(func1, alt=func2, args=['test', '--func2']) self.assertFalse(stderr.getvalue()) self.assertEqual(stdout.getvalue(), '2\n')
def test_run_multi(self): def func1(): return '1' def func2(): return '2' stdout, stderr = util.run([func1, func2], args=['test', 'func1']) self.assertFalse(stderr.getvalue()) self.assertEqual(stdout.getvalue(), '1\n') stdout, stderr = util.run([func1, func2], args=['test', 'func2']) self.assertFalse(stderr.getvalue()) self.assertEqual(stdout.getvalue(), '2\n') stdout = cStringIO() stderr = cStringIO() runner.run(func1, func2, args=['test', 'func1'], out=stdout, err=stderr, exit=False) self.assertFalse(stderr.getvalue()) self.assertEqual(stdout.getvalue(), '1\n')
def test_catch_usererror(self): def func(): raise errors.UserError('test_catch_usererror') out, err = util.run(func, ['test']) self.assertEqual(out.getvalue(), '') self.assertEqual(err.getvalue(), 'test: test_catch_usererror\n')
def test_catch_argumenterror(self): def func(): raise errors.ArgumentError('test_catch_argumenterror') out, err = util.run(func, ['test']) self.assertEqual(out.getvalue(), '') self.assertEqual(err.getvalue(), 'test: test_catch_argumenterror\n' 'Usage: test\n')
def test_run_silent(self): def func(): pass stdout, stderr = util.run(func, args=['test']) self.assertFalse(stdout.getvalue()) self.assertFalse(stderr.getvalue())
def test_catch_customerror(self): class MyError(Exception): pass def func(): raise MyError('test_catch_customerror') out, err = util.run(func, ['test'], catch=[MyError]) self.assertEqual(out.getvalue(), '') self.assertEqual(err.getvalue(), 'test_catch_customerror\n')
def test_catch_argerror_cust(self): class MyError(Exception): pass def func(): raise errors.UserError('test_catch_argerror_cust') out, err = util.run(func, ['test'], catch=[MyError]) self.assertEqual(out.getvalue(), '') self.assertEqual(err.getvalue(), 'test: test_catch_argerror_cust\n')
def test_show_list_morekw(self): func = support.f('par:a', locals={'a': RepTests.mapped_basic[1]}) out, err = util.run(func, ['name', 'list', '-k', 'xyz']) self.assertEqual('', err.getvalue()) self.assertEqual( """name: Possible values for par: hello h1 goodbye h2""".split(), out.getvalue().split())
def test_disable_help(self): def func1(): raise NotImplementedError stdout, stderr = util.run(func1, help_names=[], args=['test', '--help']) self.assertTrue(stderr.getvalue()) self.assertFalse(stdout.getvalue())
def test_show_list(self): func = support.f('par:a', locals={'a': RepTests.oneof_help[1]}) out, err = util.run(func, ['name', 'list']) self.assertEqual('', err.getvalue()) self.assertEqual( """name: Possible values for par: hello h1 bye h2""".split(), out.getvalue().split())
def test_show_list_alt(self): func = support.f('par:a', locals={'a': RepTests.mapped_alternate_list[1]}) out, err = util.run(func, ['name', 'options']) self.assertEqual('', err.getvalue()) self.assertEqual( """name: Possible values for par: hello h1 goodbye h2""".split(), out.getvalue().split())
def test_dir_missing(self): path = os.path.join(self.temp, 'adir/afile') self.assertRaises(errors.BadArgumentFormat, self.run_conv, converters.file(mode='w'), path) @modifiers.annotate(afile=converters.file(mode='w')) def func(afile): raise NotImplementedError stdout, stderr = util.run(func, ['test', path]) self.assertFalse(stdout.getvalue()) self.assertTrue(stderr.getvalue().startswith( 'test: Bad value for afile: Directory does not exist: '))
def test_file_read(self): path = os.path.join(self.temp, 'afile') open(path, 'w').close() @modifiers.annotate(afile=converters.file()) def func(afile): with afile as f: self.assertEqual(f.name, path) self.assertEqual(f.mode, 'r') self.assertTrue(f.closed) o, e = util.run(func, ['test', path]) self.assertFalse(o.getvalue()) self.assertFalse(e.getvalue())
def test_race(self): path = os.path.join(self.temp, 'afile') open(path, mode='w').close() @modifiers.annotate(afile=converters.file(mode='w')) def func(afile): os.chmod(path, stat.S_IRUSR) with afile: raise NotImplementedError stdout, stderr = util.run(func, ['test', path]) self.assertFalse(stdout.getvalue()) self.assertTrue(stderr.getvalue().startswith( 'test: Permission denied: '))
def test_file_missing(self): path = os.path.join(self.temp, 'afile') self.assertRaises(errors.BadArgumentFormat, self.run_conv, converters.file(), path) @modifiers.annotate(afile=converters.file()) def func(afile): raise NotImplementedError stdout, stderr = util.run(func, ['test', path]) self.assertFalse(stdout.getvalue()) self.assertTrue(stderr.getvalue().startswith( 'test: Bad value for afile: File does not exist: '))
def test_file_write(self): path = os.path.join(self.temp, 'afile') @modifiers.annotate(afile=converters.file(mode='w')) def func(afile): self.assertFalse(os.path.exists(path)) with afile as f: self.assertEqual(f.name, path) self.assertEqual(f.mode, 'w') self.assertTrue(f.closed) self.assertTrue(os.path.exists(path)) o, e = util.run(func, ['test', path]) self.assertFalse(o.getvalue()) self.assertFalse(e.getvalue())
def test_race(self): path = os.path.join(self.temp, 'afile') open(path, mode='w').close() @modifiers.annotate(afile=converters.file(mode='w')) def func(afile): os.chmod(path, stat.S_IRUSR) with afile: raise NotImplementedError stdout, stderr = util.run(func, ['test', path]) self.assertFalse(stdout.getvalue()) self.assertTrue( stderr.getvalue().startswith('test: Permission denied: '))
def test_disable_help(self): def func1(): raise NotImplementedError stdout, stderr = util.run( func1, help_names=[], args=['test', '--help']) self.assertTrue(stderr.getvalue()) self.assertFalse(stdout.getvalue())