def test_Config_reset2(self, mock_input): mock_input.side_effect = ['y', 'n', 'y', 'y', 'y'] config = Config() config.restore() options = ['python', app_path, 'config', '--suffix-reset=java,cpp,go,js,py', '--comment-reset=//,#,/**', '--ignore-reset=target,build,node_modules,__pycache__'] sys.argv[1:] = options[2:] args = CodeCounterArgs() self.assertTrue(args.has_config_args()) config.invoke(args.config()) suffix = {'java', 'cpp', 'go', 'js', 'py'} comment = {'//', '#', '/**'} ignore = {'target', 'build', 'node_modules', '__pycache__'} self.assertEqual(config.suffix, self.default_suffix) self.assertEqual(config.comment, comment) self.assertEqual(config.ignore, ignore) config.restore()
def test_Config_add4(self, mock_input): mock_input.side_effect = ['y', 'y', 'y', 'n', 'y'] config = Config() config.restore() options = ['python', app_path, 'config', '--suffix-add=TEST_SUFFIX', '--comment-add=TEST_COMMENT', '--ignore-add=TEST_IGNORE'] sys.argv[1:] = options[2:] args = CodeCounterArgs() self.assertTrue(args.has_config_args()) config.invoke(args.config()) suffix = 'TEST_SUFFIX' comment = 'TEST_COMMENT' ignore = 'TEST_IGNORE' self.assertTrue(suffix in config.suffix) self.assertTrue(comment in config.comment) self.assertTrue(ignore not in config.ignore) config.restore()
def test_Config_del(self, mock_input): mock_input.side_effect = ['y', 'y', 'y', 'y', 'y'] config = Config() config.restore() options = ['python', app_path, 'config', '--suffix-del=py', '--comment-del=#', '--ignore-del=venv'] sys.argv[1:] = options[2:] args = CodeCounterArgs() self.assertTrue(args.has_config_args()) config.invoke(args.config()) suffix = 'py' comment = '#' ignore = 'venv' self.assertFalse(suffix in config.suffix) self.assertFalse(comment in config.comment) self.assertFalse(ignore in config.ignore) config.restore()
def test_Config_reset_duplicate(self, mock_input): mock_input.side_effect = ['y', 'y', 'y', 'y', 'y'] config = Config() config.restore() options = ['python', app_path, 'config', '--suffix-reset=py,py,py,py', '--comment-reset=#,#,#', '--ignore-reset=__pycache__,__pycache__'] sys.argv[1:] = options[2:] args = CodeCounterArgs() self.assertTrue(args.has_config_args()) config.invoke(args.config()) suffix = {'py'} comment = {'#'} ignore = {'__pycache__'} self.assertEqual(len(config.suffix), 1) self.assertEqual(len(config.comment), 1) self.assertEqual(len(config.ignore), 1) self.assertEqual(config.suffix, suffix) self.assertEqual(config.comment, comment) self.assertEqual(config.ignore, ignore) config.restore()
def test_config_args(self): options = [ 'python', app_path, 'config', '--list', '--suffix-add=lisp', '--suffix-reset=clj', '--comment-add=//', '--comment-reset=;', '--ignore-add=.idea', '--ignore-reset=target', '--restore' ] sys.argv[1:] = options[2:] args = CodeCounterArgs() self.assertTrue(args.has_config_args(), '"config" is not in the "args"') self.assertFalse(args.has_search_args(), '"search" is in the "args"') config_args = args.config() self.assertTrue(config_args.show_list, '--list flag parsed error.') self.assertEqual(config_args.suffix_add, ['lisp'], "suffix_add flag and values parsed error.") self.assertEqual(config_args.suffix_reset, ['clj'], "suffix_reset flag and values parsed error.") self.assertEqual(config_args.comment_add, ['//'], "comment_add flag and values parsed error.") self.assertEqual(config_args.comment_reset, [';'], "comment_reset flag and values parsed error.") self.assertEqual(config_args.ignore_add, ['.idea'], "ignore_add flag and values parsed error.") self.assertEqual(config_args.ignore_reset, ['target'], "ignore_reset flag and values parsed error.") self.assertTrue(config_args.restore, '--restore flag parsed error.')
def test_Config_restore(self, mock_input): mock_input.side_effect = ['y'] options = ['python', app_path, 'config', '--restore'] sys.argv[1:] = options[2:] args = CodeCounterArgs() self.assertTrue(args.has_config_args()) config = Config() config.invoke(args.config()) self.assertEqual(config.suffix, self.default_suffix, "the suffix doesn't equal") self.assertEqual(config.comment, self.default_comment, "the comment doesn't equal") self.assertEqual(config.ignore, self.default_ignore, "the ignore doesn't equal")
def main(): args = CodeCounterArgs() config = Config() if args.has_config_args(): config.invoke(args.config()) return code_counter = CodeCounter(config) search_args = args.search() code_counter.setSearchArgs(search_args) time_start = time.time() code_counter.search() time_end = time.time() print('\n\tTotally cost {} s.'.format(time_end - time_start)) if search_args.graph: code_counter.visualize()
def test_search_args(self): options = [ 'python', app_path, 'search', '../code_counter/', '-v', '-g', '-o=output.txt', '--suffix=py,java,cpp', '--comment=//,#,/*', '--ignore=.vscode,.idea' ] sys.argv[1:] = options[2:] args = CodeCounterArgs() self.assertFalse(args.has_config_args(), '"config" is in the "args"') self.assertTrue(args.has_search_args(), '"search" is not in the "args"') search_args = args.search() self.assertEqual(search_args.input_path, ['../code_counter/'], "search path parsed error.") self.assertTrue(search_args.verbose, '-v,--verbose flag parsed error.') self.assertTrue(search_args.graph, '-g,--graph flag parsed error.') self.assertEqual(search_args.output_path, 'output.txt', "output path parsed error.") self.assertEqual(search_args.suffix, ['py', 'java', 'cpp'], "suffix flag and values parsed error.") self.assertEqual(search_args.comment, ['//', '#', '/*'], "comment flag and values parsed error.") self.assertEqual(search_args.ignore, ['.vscode', '.idea'], "ignore flag and values parsed error.")