示例#1
0
    def test_generate_tagfile(self):
        ec = exuberant_ctags(tag_program=tag_program, files=file_lists['relpath'])
        ec.generate_tagfile("generated.tags")
        self.failIf(not os.path.exists("generated.tags"))
        os.remove("generated.tags")
        
        ec = exuberant_ctags(tag_program=tag_program)
        ec.generate_tagfile("generated.tags", files=file_lists['relpath'])
        self.failIf(not os.path.exists("generated.tags"))
        os.remove("generated.tags")

        ec = exuberant_ctags()
        ec.generate_tagfile("generated.tags", tag_program=tag_program, files=file_lists['relpath'])
        self.failIf(not os.path.exists("generated.tags"))
        os.remove("generated.tags")
示例#2
0
    def test_kind_harvester(self):

        ec = exuberant_ctags(tag_program=tag_program)

        (tf, kinds) = self.do_kind_harvest(tag_lists['unextended']['body'])
        self.failUnlessEqual(len(kinds), 0)
        
        (tf, kinds) = self.do_kind_harvest(tag_lists['no_kinds']['body'])
        self.failUnlessEqual(len(kinds), 0)

        (tf, kinds) = self.do_kind_harvest(tag_lists['relpath']['body'])
        if ec.version == "5.7":
            self.failUnlessEqual(len(kinds), 2)
            self.check_kind_keys(kinds, ['c', 'm'])
        elif ec.version == "5.6b1":
            self.failUnlessEqual(len(kinds), 3)
            self.check_kind_keys(kinds, ['c', 'm', 'v'])
        
        for tag in tf.tags:
            if 'kind' in tag.extensions:
                self.failUnless(tag in kinds[tag.extensions['kind']])

        (tf, kinds) = self.do_kind_harvest(tag_lists['hyper_extended']['body'])
        if ec.version == "5.7":
            self.failUnlessEqual(len(kinds), 2)
            self.check_kind_keys(kinds, ['class', 'member'])
        elif ec.version == "5.6b1":
            self.failUnlessEqual(len(kinds), 3)
            self.check_kind_keys(kinds, ['class', 'member', 'variable'])
        
        for tag in tf.tags:
            if 'kind' in tag.extensions:
                self.failUnless(tag in kinds[tag.extensions['kind']])
示例#3
0
 def test_executable_set(self):
     ec = exuberant_ctags(tag_program=tag_program)
     ec.generate_tagfile("generated.tags", tag_program=tag_program, files=file_lists['relpath'])
     self.failIf(not os.path.exists("generated.tags"))
     os.remove("generated.tags")
     
     if sys.platform == "win32" and extended_tests:
         ec = exuberant_ctags()
         ec.ctags_executable('/bin/ctags')
         ec.generate_tagfile("generated.tags", tag_program=tag_program, files=file_lists['relpath'])
         self.failIf(not os.path.exists("generated.tags"))
         os.remove("generated.tags")
     
     ec = exuberant_ctags()
     ec.generate_tagfile("generated.tags", tag_program=tag_program, files=file_lists['relpath'])
     self.failIf(not os.path.exists("generated.tags"))
     os.remove("generated.tags")
示例#4
0
 def test_no_ctags_set(self):
     ec = exuberant_ctags(files=file_lists['relpath'])
     try:
         tags = ec.generate_tags()
         self.failUnlessEqual(tags[0], tag_lists['relpath']['body'][0])
     except ValueError:
         # this happens if ctags isn't on the path, but it isn't fatal.
         pass
示例#5
0
 def test_end_to_end(self):
     ec = exuberant_ctags()
     tags = ec.generate_tags(tag_program=tag_program, files=test_writetags.file_lists['relpath'])
     tf = ctags_file(tags)
     tf2 = ctags_file(tag_lists['relpath']['head'] + tag_lists['relpath']['body'])
     i = 0
     for t in tf.tags:
         self.failUnless(t in tf2.tags)
         i += 1
示例#6
0
    def test_warnings(self):
        fl = file_lists['relpath'][:]
        fl.append("foobar.py")
        ec = exuberant_ctags(tag_program=tag_program, files=fl)
        ec.generate_tags()
        self.failUnless(len(ec.warnings))
        self.failUnless(ec.warnings[0].find('Warning: cannot open source file "foobar.py" : No such file or directory') > 0)

        ec.generate_tags(files=file_lists['relpath'])
        self.failUnlessEqual(len(ec.warnings), 0)
示例#7
0
 def test_generate_object(self):
     ec = exuberant_ctags(tag_program=tag_program, files=file_lists['relpath'])
     tf = ec.generate_object()
     tf2 = ctags_file(tag_lists['relpath']['body'])
     
     self.failIfEqual(tf, None)
     self.failUnless(len(tf.tags))
     i = 0
     for tag in tf2.tags:
         self.failUnlessEqual(repr(tag), repr(tf.tags[i]))
         i += 1
示例#8
0
 def test_end_to_end(self):
     ec = exuberant_ctags()
     tags = ec.generate_tags(tag_program=tag_program,
                             files=test_writetags.file_lists['relpath'])
     tf = ctags_file(tags)
     tf2 = ctags_file(tag_lists['relpath']['head'] +
                      tag_lists['relpath']['body'])
     i = 0
     for t in tf.tags:
         self.failUnless(t in tf2.tags)
         i += 1
示例#9
0
    def test_name_lookup_harvester(self):
        lookup_harvest = name_lookup_harvester()
        tf = ctags_file(tag_lists['extended']['body'], harvesters=[lookup_harvest])
        ec = exuberant_ctags(tag_program=tag_program)
        
        # exuberant ctags 5.8 picks up 5 matches, because of copy.copy
        tags = lookup_harvest.starts_with('c', case_sensitive=True)
        if ec.version in ['5.7', '5.6b1']:
            self.failUnlessEqual(len(tags), 4)
        if ec.version in ['5.8']:
            self.failUnlessEqual(len(tags), 5)

        tags = lookup_harvest.starts_with('C', case_sensitive=True)
        self.failUnlessEqual(len(tags), 0)
        
        atags = lookup_harvest.starts_with('a')
        self.failUnlessEqual(len(atags), 0)

        tags = lookup_harvest.starts_with('c')
        if ec.version in ['5.7', '5.6b1']:
            self.failUnlessEqual(len(tags), 4)
        if ec.version in ['5.8']:
            self.failUnlessEqual(len(tags), 5)
        
        tag_tags = lookup_harvest.starts_with('ctags_')
        self.failUnlessEqual(len(tag_tags), 4)

        tags = lookup_harvest.starts_with('c', num_results=2)
        self.failUnlessEqual(len(tags), 2)

        tags = lookup_harvest.starts_with('C', num_results=2)
        self.failUnlessEqual(len(tags), 2)
    
        tags = lookup_harvest.starts_with('c', num_results=5)
        self.failUnless(len(tags) <= 5)

        tags = lookup_harvest.starts_with('c', num_results=3, case_sensitive=True)
        self.failUnlessEqual(len(tags), 3)

        tags = lookup_harvest.starts_with('C', num_results=2, case_sensitive=True)
        self.failUnlessEqual(len(tags), 0)
    
        tags = lookup_harvest.starts_with('c', num_results=2, case_sensitive=False)
        self.failUnlessEqual(len(tags), 2)

        tags = lookup_harvest.starts_with('C', num_results=2, case_sensitive=False)
        self.failUnlessEqual(len(tags), 2)
示例#10
0
 def test_init(self):
     ec = exuberant_ctags(tag_program=tag_program, files=file_lists['relpath'])
     ec = exuberant_ctags(files=file_lists['relpath'])
     ec = exuberant_ctags(tag_program=tag_program)
     ec = exuberant_ctags()
示例#11
0
 def test_generate_to_unc_filename(self):
     if extended_tests and sys.platform == "win32":
         ec = exuberant_ctags(tag_program=tag_program, files=file_lists['relpath'])
         self.failUnless(ec.generate_tagfile('\\\\lazarus\\network write\\tagfile'))
示例#12
0
 def test_generate_to_drive_letter_path(self):
     if extended_tests and sys.platform == "win32":
         ec = exuberant_ctags(tag_program=tag_program, files=file_lists['relpath'])
         self.failUnless(ec.generate_tagfile('C:\\tagfile'))
示例#13
0
 def test_generate_tags(self):
     ec = exuberant_ctags()
     tags = ec.generate_tags(tag_program=tag_program, files=file_lists['relpath'])
     self.failUnlessEqual(tags[0], tag_lists['relpath']['body'][0])
     self.failUnlessEqual(tags[-1], tag_lists['relpath']['body'][-1])
示例#14
0
 def test_generate_from_drive_letter_path(self):
     if extended_tests and sys.platform == "win32":
         ec = exuberant_ctags(tag_program=tag_program, files=file_lists['drive_letter'])
         tags = ec.generate_tags()
         self.failUnlessEqual(tags[0], tag_lists['drive_letter']['body'][0])
示例#15
0
 def test_custom_params(self):
     ec = exuberant_ctags(tag_program=tag_program, files=file_lists['relpath'])
     tags = ec.generate_tags(generator_options={'-e' : None})
     self.failUnless(ec.command_line.find(' -e ') > 0)
示例#16
0
 def test_empty_list(self):
     ec = exuberant_ctags(tag_program=tag_program, files=[])
     tags = ec.generate_tags()
     self.failUnlessEqual(len(tags), 0)
示例#17
0
 def test_custom_input_files(self):
     ec = exuberant_ctags(tag_program=tag_program)
     ec.generate_tagfile("customtags", generator_options={'-L' : "relpath.txt"})
     self.failIf(not os.path.exists("customtags"))
     os.remove("customtags")
示例#18
0
 def test_exuberant_kinds(self):
     ec = exuberant_ctags(tag_program=tag_program)
     self.failUnless("python" in ec.language_info)
     self.failUnless("c++" in ec.language_info)
示例#19
0
 def test_language_maps(self):
     ec = exuberant_ctags(tag_program=tag_program)
     self.failUnless('.x68' in ec.all_extensions)
     self.failUnless('.x86' in ec.language_extensions['Asm'])
     self.failUnless('makefile' in ec.all_extensions)
     self.failUnless('.scm' in ec.all_extensions)