Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
    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()
Ejemplo n.º 3
0
    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()
Ejemplo n.º 4
0
    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()
Ejemplo n.º 5
0
 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.')
Ejemplo n.º 6
0
    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")
Ejemplo n.º 7
0
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()
Ejemplo n.º 8
0
 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.")