def test_remove(self): parsed_dict, _ = self.run_dir(sys._getframe().f_code.co_name) self.assertTrue(parsed_dict) p = parsed_dict person_usr = self.usr(p, self.basename(self.sources['person.h']), '4:7') person_talk_usr = self.usr(p, self.basename(self.sources['person.h']), '6:10') remove(p, 'person.h') self.assertFalse(p.has_key('person.h')) self.assertNotIn(DEFI, p[person_usr]) self.assertNotIn(DECL, p[person_talk_usr])
def test_remove_and_update(self): name = sys._getframe().f_code.co_name src = 'person.h' orig = src + '.orig' patch = src + '.patch' basedir = os.path.abspath('tests/{}'.format(name)) if not basedir.endswith('/'): basedir += '/' import shutil shutil.copyfile(os.path.join(basedir, orig), os.path.join(basedir, src)) parsed_dict, _ = self.run_dir(name) self.assertTrue(parsed_dict) filename = sys._getframe().f_code.co_name + '.db' d = Storage(filename) d.close() d = Storage(filename) remove(parsed_dict, src) d.update(parsed_dict) # patch and re-run self.patch_file(name, patch) import re def is_matching_file(file): logging.debug('src: {}, file: {}'.format(src, file)) return not re.match(src, file) s = self.sources new_parsed_dict, _ = self.run_dir(name, is_matching_file) n = new_parsed_dict self.assertTrue(n.has_key(src)) self.is_definition_of(n, self.usr, s[src], '5:7', s[src], '5:7') self.is_definition_of(n, self.usr, s[src], '7:9', s[src], '7:9') self.is_definition_of(n, self.usr, s[src], '8:10', s['person.cpp'], '3:14') self.is_definition_of(n, self.ref_usr, s[src], '7:30', s[src], '11:9') os.remove(filename)
def test_remove_load_after_save(self): parsed_dict, _ = self.run_dir(sys._getframe().f_code.co_name) self.assertTrue(parsed_dict) person_usr = self.usr(parsed_dict, self.basename(self.sources['person.h']), '4:7') person_talk_usr = self.usr(parsed_dict, self.basename(self.sources['person.h']), '6:10') filename = sys._getframe().f_code.co_name + '.db' d = Storage(filename) d.close() d = Storage(filename) remove(parsed_dict, 'person.h') d.update(parsed_dict) p = parsed_dict self.assertFalse(d.has_key('person.h')) self.assertNotIn(DEFI, d[person_usr]) self.assertNotIn(DECL, d[person_talk_usr]) os.remove(filename)