Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
    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)
Ejemplo n.º 9
0
    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)
Ejemplo n.º 10
0
    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)
Ejemplo n.º 11
0
    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)
Ejemplo n.º 12
0
    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)
Ejemplo n.º 13
0
    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)