def test_db_file_saved(self): # http://stackoverflow.com/a/13514318/2229134 filename = sys._getframe().f_code.co_name d = Storage(filename, 'n') d['hello'] = 'world' self.assertEqual(d['hello'], 'world') d.close() os.remove(filename)
def test_save_and_delitem_dict(self): src = {'1': 2, '3': 4} filename = sys._getframe().f_code.co_name d = Storage(filename, 'n') d.update(src) d.close() d = Storage(filename) del d['1'] self.assertFalse(d.has_key('1')) self.assertTrue(d.has_key('3')) d.close() os.remove(filename)
def test_save_and_update_dict(self): src = {'1': 2, '3': 4} filename = sys._getframe().f_code.co_name d = Storage(filename, 'n') d.update(src) self.assertEqual(d['1'], 2) self.assertEqual(d['3'], 4) d.close() d = Storage(filename) new = {'1': 10, '3': 20} d.update(new) self.assertEqual(d['1'], 10) self.assertEqual(d['3'], 20) d.close() os.remove(filename)
def test_save_and_update_not_delete_item_dict(self): src = {'1': 2, '3': 4} filename = sys._getframe().f_code.co_name d = Storage(filename, 'n') d.update(src) self.assertEqual(d['1'], 2) self.assertEqual(d['3'], 4) d.close() d = Storage(filename) new = {'2': 10, '3': 20} d.update(new) self.assertTrue('1' in d) # does not delete '1' self.assertEqual(d['2'], 10) self.assertEqual(d['3'], 20) d.close() os.remove(filename)
def test_update_complex_dict(self): src = {'1': 2, 'recur': {'3': 4, '5': 6}} filename = sys._getframe().f_code.co_name d = Storage(filename, 'n') d.update(src) self.assertEqual(d['1'], 2) self.assertEqual(d['recur'], {'3': 4, '5': 6}) d.close() d = Storage(filename, 'r') self.assertEqual(d['1'], 2) self.assertEqual(d['recur'], {'3': 4, '5': 6}) d.close() os.remove(filename)
def test_update_dict(self): src = {'1': 2, '3': 4} filename = sys._getframe().f_code.co_name d = Storage(filename, 'n') d.update(src) self.assertEqual(d['1'], 2) self.assertEqual(d['3'], 4) d.close() d = Storage(filename, 'r') self.assertEqual(d['1'], 2) self.assertEqual(d['3'], 4) d.close() os.remove(filename)
def test_write_and_read(self): filename = sys._getframe().f_code.co_name d = Storage(filename, 'n') d['hello'] = 'world' self.assertEqual(d['hello'], 'world') d.close() d = Storage(filename, 'r') self.assertEqual(d['hello'], 'world') d.close() os.remove(filename)
def test_simple(self): d1 = {'file1': [1]} d2 = {'file1': [2]} filename = sys._getframe().f_code.co_name + '.db' p = Storage(filename, writeback=True) p.update(d1) merge_recurse_inplace(p, d2, Storage) p.sync() ds_expected = {'file1': [1, 2]} self.assertEqual(p, ds_expected) p.close() os.remove(filename)
def test_recursive(self): d1 = {'file1': {'1:2': {'refs': [1]}, '3:4': {'refs': [2, 3]}}} d2 = {'file1': {'1:2': {'refs': [2, 3]}, '5:6': {'refs': [4, 5]}}} filename = sys._getframe().f_code.co_name + '.db' p = Storage(filename, writeback=True) p.update(d1) merge_recurse_inplace(p, d2, Storage) p.sync() ds_expected = {'file1': {'1:2': {'refs': [1, 2, 3]}, '3:4': {'refs': [2, 3]}, '5:6': {'refs': [4, 5]}}} self.assertEqual(p, ds_expected) p.close() os.remove(filename)
def test_write_dict(self): src = {1: 2, 3: 4} filename = sys._getframe().f_code.co_name d = Storage(filename, 'n') d['src'] = src self.assertEqual(d['src'][1], 2) self.assertEqual(d['src'][3], 4) d.close() d = Storage(filename, 'r') self.assertEqual(d['src'][1], 2) self.assertEqual(d['src'][3], 4) d.close() 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)
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_save_and_delitem_child_dict(self): src = {'1': 2, 'child': {'3': 4, '5': 6}} filename = sys._getframe().f_code.co_name d = Storage(filename, 'n') d.update(src) d.close() d = Storage(filename) child = d['child'] del child['3'] self.assertFalse('3' in child) d['child'] = child self.assertFalse(d['child'].has_key('3')) d.close() d = Storage(filename, 'r') self.assertFalse(d['child'].has_key('3')) d.close() os.remove(filename)