self.assertTrue('[cloud "cld1"]' in cld) cld1_i = cld.index('[cloud "cld1"]') cld1 = cld[cld1_i:cld1_i + 3] self.assertTrue('url = url1' in cld1) self.assertTrue('token = token1' in cld1) self.assertTrue('[cloud "cld2"]' in cld) cld2_i = cld.index('[cloud "cld2"]') self.assertEqual(u'url = \u03bf\u03c5\u03b1\u03c1\u03ad\u03bb', cld[cld2_i + 1]) finally: Config.items = bu_func @patch('kamaki.cli.config.Config.safe_to_print', return_value='rv') def test_write(self, stp): from kamaki.cli.config import Config _cnf = Config(path=self.f.name) exp = '%s%s' % (HEADER, 'rv') _cnf.write() self.f.seek(0) self.assertEqual(self.f.read(), exp) stp.assert_called_once_with() del _cnf if __name__ == '__main__': from sys import argv from kamaki.cli.test import runTestCase runTestCase(Config, 'Config', argv[1:])
apm.update_arguments(None) self.assertEqual(len(UP.mock_calls), 0) apm._arguments = inp apm.update_arguments(cor) assert_dicts_are_equal(self, apm.arguments, exp) UP.assert_called_once_with() def test_parse(self): apm = argument.ArgumentParseManager('exe', {}) parsed, unparsed = apm.parser.parse_known_args() apm.parse() self.assertEqual(apm._parsed, parsed) self.assertEqual(apm.unparsed, unparsed) if __name__ == '__main__': from sys import argv from kamaki.cli.test import runTestCase runTestCase(Argument, 'Argument', argv[1:]) runTestCase(ConfigArgument, 'ConfigArgument', argv[1:]) runTestCase(RuntimeConfigArgument, 'RuntimeConfigArgument', argv[1:]) runTestCase(FlagArgument, 'FlagArgument', argv[1:]) runTestCase(FlagArgument, 'ValueArgument', argv[1:]) runTestCase(IntArgument, 'IntArgument', argv[1:]) runTestCase(DateArgument, 'DateArgument', argv[1:]) runTestCase(VersionArgument, 'VersionArgument', argv[1:]) runTestCase(RepeatableArgument, 'RepeatableArgument', argv[1:]) runTestCase(KeyValueArgument, 'KeyValueArgument', argv[1:]) runTestCase(ProgressBarArgument, 'ProgressBarArgument', argv[1:]) runTestCase(ArgumentParseManager, 'ArgumentParseManager', argv[1:])
apm.update_arguments(None) self.assertEqual(len(UP.mock_calls), 0) apm._arguments = inp apm.update_arguments(cor) assert_dicts_are_equal(self, apm.arguments, exp) UP.assert_called_once_with() def test_parse(self): apm = argument.ArgumentParseManager('exe', {}) parsed, unparsed = apm.parser.parse_known_args() apm.parse() self.assertEqual(apm._parsed, parsed) self.assertEqual(apm.unparsed, unparsed) if __name__ == '__main__': from sys import argv from kamaki.cli.test import runTestCase runTestCase(Argument, 'Argument', argv[1:]) runTestCase(ConfigArgument, 'ConfigArgument', argv[1:]) runTestCase(RuntimeConfigArgument, 'RuntimeConfigArgument', argv[1:]) runTestCase(FlagArgument, 'FlagArgument', argv[1:]) runTestCase(FlagArgument, 'ValueArgument', argv[1:]) runTestCase(IntArgument, 'IntArgument', argv[1:]) runTestCase(DateArgument, 'DateArgument', argv[1:]) runTestCase(VersionArgument, 'VersionArgument', argv[1:]) runTestCase(RepeatableArgument, 'RepeatableArgument', argv[1:]) runTestCase(KeyValueArgument, 'KeyValueArgument', argv[1:]) runTestCase(ProgressBarArgument, 'ProgressBarArgument', argv[1:]) runTestCase(ArgumentParseManager, 'ArgumentParseManager', argv[1:])
_cnf.write() self.f.seek(0) self.assertEqual(self.f.read(), exp) del _cnf with NamedTemporaryFile() as f: f.write('\n'.join(self.config_file_content)) f.flush() _cnf = Config(path=f.name) f.seek(0) self.assertEqual(f.read(), '\n'.join(self.config_file_content)) _cnf.write() f.seek(0) file_contents = f.read() for line in self.config_file_content: self.assertTrue(line in file_contents) _cnf.set('sec', 'opt', 'val') _cnf.set('global', 'opt', 'val') _cnf.set('global', 'file_cli', 'val') _cnf.write() f.seek(0) file_contents = f.read() for line in ('file_cli = val\n', '[sec]\n', 'opt = val\n'): self.assertTrue(line in file_contents) if __name__ == '__main__': from sys import argv from kamaki.cli.test import runTestCase runTestCase(Config, 'Config', argv[1:])
tmp1, tmp2 = dict(d), dict(d) remove_from_items([tmp1, tmp2], k) self.assert_dicts_are_equal(tmp1, tmp2) def test_filter_dicts_by_dict(self): from kamaki.cli.utils import filter_dicts_by_dict dlist = [ dict(k1='v1', k2='v2', k3='v3'), dict(k1='v1'), dict(k2='v2', k3='v3'), dict(k1='V1', k3='V3'), dict()] for l, f, em, cs, exp in ( (dlist, dlist[2], True, False, dlist[0:1] + dlist[2:3]), (dlist, dlist[1], True, False, dlist[0:2] + dlist[3:4]), (dlist, dlist[1], True, True, dlist[0:2]), (dlist, {'k3': 'v'}, True, False, []), (dlist, {'k3': 'v'}, False, False, dlist[0:1] + dlist[2:4]), (dlist, {'k3': 'v'}, False, True, dlist[0:1] + dlist[2:3]), (dlist, {'k3': 'v'}, True, True, []), (dlist, dlist[4], True, False, dlist), ): self.assertEqual(exp, filter_dicts_by_dict(l, f, em, cs)) if __name__ == '__main__': from sys import argv from kamaki.cli.test import runTestCase runTestCase(UtilsMethods, 'UtilsMethods', argv[1:])
l1.sort(), l2.sort(), self.assertEqual(l1, l2) self.assertRaises(KeyError, ctree.subnames, 'NON_EXISTNG_CMD') def test_get_subcommands(self): ctree = cmdtree.CommandTree('treeSub', 'test get_subcommands') self.assertEqual(ctree.get_subcommands(), []) self.assertRaises(KeyError, ctree.get_subcommands, 'cmd') self._add_commands(ctree) for s1, l2 in (('', ['cmd', 'othercmd']), ('cmd', [ 'cmd0a', 'cmd0b', 'cmd0c' ]), ('cmd_cmd0a', ['cmd1a', 'cmd1b']), ('cmd_cmd0a_cmd1a', [ 'cmd2', ]), ('cmd_cmd0a_cmd1b', [ 'cmd2', ]), ('cmd_cmd0a_cmd1a_cmd2', []), ('cmd_cmd0a_cmd1b_cmd2', []), ('cmd_cmd0b', []), ('cmd_cmd0c', ['cmd1a', 'cmd1b']), ('cmd_cmd0c_cmd1a', []), ('cmd_cmd0c_cmd1b', [ 'cmd2', ]), ('cmd_cmd0c_cmd1b_cmd2', []), ('othercmd', [])): l1 = [cmd.path for cmd in ctree.get_subcommands(s1)] l2 = ['_'.join([s1, i]) for i in l2] if s1 else l2 l1.sort(), l2.sort(), self.assertEqual(l1, l2) self.assertRaises(KeyError, ctree.get_subcommands, 'NON_EXISTNG_CMD') if __name__ == '__main__': from sys import argv from kamaki.cli.test import runTestCase runTestCase(Command, 'Command', argv[1:]) runTestCase(CommandTree, 'CommandTree', argv[1:])
def test_get_subcommands(self): ctree = cmdtree.CommandTree('treeSub', 'test get_subcommands') self.assertEqual(ctree.get_subcommands(), []) self.assertRaises(KeyError, ctree.get_subcommands, 'cmd') self._add_commands(ctree) for s1, l2 in ( ('', ['cmd', 'othercmd']), ('cmd', ['cmd0a', 'cmd0b', 'cmd0c']), ('cmd_cmd0a', ['cmd1a', 'cmd1b']), ('cmd_cmd0a_cmd1a', ['cmd2', ]), ('cmd_cmd0a_cmd1b', ['cmd2', ]), ('cmd_cmd0a_cmd1a_cmd2', []), ('cmd_cmd0a_cmd1b_cmd2', []), ('cmd_cmd0b', []), ('cmd_cmd0c', ['cmd1a', 'cmd1b']), ('cmd_cmd0c_cmd1a', []), ('cmd_cmd0c_cmd1b', ['cmd2', ]), ('cmd_cmd0c_cmd1b_cmd2', []), ('othercmd', [])): l1 = [cmd.path for cmd in ctree.get_subcommands(s1)] l2 = ['_'.join([s1, i]) for i in l2] if s1 else l2 l1.sort(), l2.sort(), self.assertEqual(l1, l2) self.assertRaises(KeyError, ctree.get_subcommands, 'NON_EXISTNG_CMD') if __name__ == '__main__': from sys import argv from kamaki.cli.test import runTestCase runTestCase(Command, 'Command', argv[1:]) runTestCase(CommandTree, 'CommandTree', argv[1:])