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")
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']])
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")
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
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
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)
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
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)
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()
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'))
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'))
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])
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])
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)
def test_empty_list(self): ec = exuberant_ctags(tag_program=tag_program, files=[]) tags = ec.generate_tags() self.failUnlessEqual(len(tags), 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")
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)
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)