Esempio n. 1
0
    def test_tablenames(self):
        fname = norm_file('tests/db/tablenames-test-1.sqlite')
        SqliteDict(fname)
        self.assertEqual(SqliteDict.get_tablenames(fname), ['unnamed'])

        fname = norm_file('tests/db/tablenames-test-2.sqlite')
        with SqliteDict(fname,tablename='table1') as db1:
            self.assertEqual(SqliteDict.get_tablenames(fname), ['table1'])
        with SqliteDict(fname,tablename='table2') as db2:
            self.assertEqual(SqliteDict.get_tablenames(fname), ['table1','table2'])
        
        tablenames = SqliteDict.get_tablenames('tests/db/tablenames-test-2.sqlite')
        self.assertEqual(tablenames, ['table1','table2'])
Esempio n. 2
0
    def test_readonly(self):
        fname = norm_file('tests/db/sqlitedict-override-test.sqlite')
        orig_db = sqlitedict.SqliteDict(filename=fname)
        orig_db['key'] = 'value'
        orig_db['key_two'] = 2
        orig_db.commit()
        orig_db.close()

        readonly_db = sqlitedict.SqliteDict(filename=fname, flag='r')
        self.assertTrue(readonly_db['key'] == 'value')
        self.assertTrue(readonly_db['key_two'] == 2)

        def attempt_write():
            readonly_db['key'] = ['new_value']

        def attempt_update():
            readonly_db.update(key='value2', key_two=2.1)

        def attempt_delete():
            del readonly_db['key']

        def attempt_clear():
            readonly_db.clear()

        def attempt_terminate():
            readonly_db.terminate()

        attempt_funcs = [
            attempt_write, attempt_update, attempt_delete, attempt_clear,
            attempt_terminate
        ]

        for func in attempt_funcs:
            with self.assertRaises(RuntimeError):
                func()
Esempio n. 3
0
 def test_reopen_conn(self):
     """Verify using a contextmanager that a connection can be reopened."""
     fname = norm_file('tests/db/sqlitedict-override-test.sqlite')
     db = sqlitedict.SqliteDict(filename=fname)
     with db:
         db['key'] = 'value'
         db.commit()
     with db:
         db['key'] = 'value'
         db.commit()
Esempio n. 4
0
 def test_reopen_conn(self):
     """Verify using a contextmanager that a connection can be reopened."""
     fname = norm_file('tests/db/sqlitedict-override-test.sqlite')
     db = SqliteDict(filename=fname)
     with db:
         db['key'] = 'value'
         db.commit()
     with db:
         db['key'] = 'value'
         db.commit()
Esempio n. 5
0
    def test_overwrite_using_flag_n(self):
        """Re-opening of a database with flag='c' destroys it all."""
        # given,
        fname = norm_file('tests/db/sqlitedict-override-test.sqlite')
        orig_db = sqlitedict.SqliteDict(filename=fname, tablename='sometable')
        orig_db['key'] = 'value'
        orig_db.commit()
        orig_db.close()

        # verify,
        next_db = sqlitedict.SqliteDict(filename=fname, tablename='sometable', flag='n')
        self.assertNotIn('key', next_db.keys())
Esempio n. 6
0
    def test_overwrite_using_flag_n(self):
        """Re-opening of a database with flag='c' destroys it all."""
        # given,
        fname = norm_file('tests/db/sqlitedict-override-test.sqlite')
        orig_db = SqliteDict(filename=fname, tablename='sometable')
        orig_db['key'] = 'value'
        orig_db.commit()
        orig_db.close()

        # verify,
        next_db = SqliteDict(filename=fname, tablename='sometable', flag='n')
        self.assertNotIn('key', next_db.keys())
Esempio n. 7
0
    def test_default_reuse_existing_flag_c(self):
        """Re-opening of a database does not destroy it."""
        # given,
        fname = norm_file('tests/db/sqlitedict-override-test.sqlite')
        orig_db = sqlitedict.SqliteDict(filename=fname)
        orig_db['key'] = 'value'
        orig_db.commit()
        orig_db.close()

        next_db = sqlitedict.SqliteDict(filename=fname)
        self.assertIn('key', next_db.keys())
        self.assertEqual(next_db['key'], 'value')
Esempio n. 8
0
    def test_default_reuse_existing_flag_c(self):
        """Re-opening of a database does not destroy it."""
        # given,
        fname = norm_file('tests/db/sqlitedict-override-test.sqlite')
        orig_db = sqlitedict.SqliteDict(filename=fname)
        orig_db['key'] = 'value'
        orig_db.commit()
        orig_db.close()

        next_db = sqlitedict.SqliteDict(filename=fname)
        self.assertIn('key', next_db.keys())
        self.assertEqual(next_db['key'], 'value')
Esempio n. 9
0
    def test_readonly(self):
        fname = norm_file('tests/db/sqlitedict-override-test.sqlite')
        orig_db = sqlitedict.SqliteDict(filename=fname)
        orig_db['key'] = 'value'
        orig_db.commit()
        orig_db.close()

        readonly_db = sqlitedict.SqliteDict(filename=fname, flag='r')
        self.assertTrue(readonly_db['key'] == 'value')

        def attempt_write():
            readonly_db['key'] = ['new_value']

        with self.assertRaises(RuntimeError):
            attempt_write()
Esempio n. 10
0
    def test_readonly_table(self):
        """
        Read-only access on a non-existant tablename should raise RuntimeError,
        and not create a new (empty) table.
        """
        fname = norm_file('tests/db/sqlitedict-override-test.sqlite')
        dummy_tablename = 'table404'
        orig_db = SqliteDict(filename=fname)
        orig_db['key'] = 'value'
        orig_db['key_two'] = 2
        orig_db.commit()
        orig_db.close()

        self.assertFalse(dummy_tablename in SqliteDict.get_tablenames(fname))

        with self.assertRaises(RuntimeError):
            SqliteDict(filename=fname, tablename=dummy_tablename, flag='r')

        self.assertFalse(dummy_tablename in SqliteDict.get_tablenames(fname))
Esempio n. 11
0
    def test_overwrite_using_flag_w(self):
        """Re-opening of a database with flag='w' destroys only the target table."""
        # given,
        fname = norm_file('tests/db/sqlitedict-override-test.sqlite')
        orig_db_1 = sqlitedict.SqliteDict(filename=fname, tablename='one')
        orig_db_1['key'] = 'value'
        orig_db_1.commit()
        orig_db_1.close()

        orig_db_2 = sqlitedict.SqliteDict(filename=fname, tablename='two')
        orig_db_2['key'] = 'value'
        orig_db_2.commit()
        orig_db_2.close()

        # verify, when re-opening table space 'one' with flag='2', we destroy
        # its contents.  However, when re-opening table space 'two' with
        # default flag='r', its contents remain.
        next_db_1 = sqlitedict.SqliteDict(filename=fname, tablename='one', flag='w')
        self.assertNotIn('key', next_db_1.keys())

        next_db_2 = sqlitedict.SqliteDict(filename=fname, tablename='two')
        self.assertIn('key', next_db_2.keys())
Esempio n. 12
0
    def test_overwrite_using_flag_w(self):
        """Re-opening of a database with flag='w' destroys only the target table."""
        # given,
        fname = norm_file('tests/db/sqlitedict-override-test.sqlite')
        orig_db_1 = SqliteDict(filename=fname, tablename='one')
        orig_db_1['key'] = 'value'
        orig_db_1.commit()
        orig_db_1.close()

        orig_db_2 = SqliteDict(filename=fname, tablename='two')
        orig_db_2['key'] = 'value'
        orig_db_2.commit()
        orig_db_2.close()

        # verify, when re-opening table space 'one' with flag='2', we destroy
        # its contents.  However, when re-opening table space 'two' with
        # default flag='r', its contents remain.
        next_db_1 = SqliteDict(filename=fname, tablename='one', flag='w')
        self.assertNotIn('key', next_db_1.keys())

        next_db_2 = SqliteDict(filename=fname, tablename='two')
        self.assertIn('key', next_db_2.keys())
Esempio n. 13
0
    def test_readonly(self):
        fname = norm_file('tests/db/sqlitedict-override-test.sqlite')
        orig_db = sqlitedict.SqliteDict(filename=fname)
        orig_db['key'] = 'value'
        orig_db['key_two'] = 2
        orig_db.commit()
        orig_db.close()

        readonly_db = sqlitedict.SqliteDict(filename=fname, flag = 'r')
        self.assertTrue(readonly_db['key'] == 'value')
        self.assertTrue(readonly_db['key_two'] == 2)

        def attempt_write():
            readonly_db['key'] = ['new_value']

        def attempt_update():
            readonly_db.update(key = 'value2', key_two = 2.1)

        def attempt_delete():
            del readonly_db['key']

        def attempt_clear():
            readonly_db.clear()

        def attempt_terminate():
            readonly_db.terminate()

        attempt_funcs = [attempt_write, 
                         attempt_update, 
                         attempt_delete,
                         attempt_clear,
                         attempt_terminate]

        for func in attempt_funcs:
            with self.assertRaises(RuntimeError):
                func()
Esempio n. 14
0
 def build_with_bad_flag():
     fname = norm_file('tests/db/sqlitedict-override-test.sqlite')
     orig_db = sqlitedict.SqliteDict(filename=fname, flag = 'FOO')
Esempio n. 15
0
 def build_with_bad_flag():
     fname = norm_file('tests/db/sqlitedict-override-test.sqlite')
     orig_db = sqlitedict.SqliteDict(filename=fname, flag='FOO')
Esempio n. 16
0
 def setUp(self):
     db = norm_file('tests/db/sqlitedict-with-def.sqlite')
     self.d = sqlitedict.SqliteDict(filename=db)
Esempio n. 17
0
 def setUp(self):
     self.fname = norm_file('tests/db-permdenied/sqlitedict.sqlite')
     self.db = sqlitedict.SqliteDict(filename=self.fname)
     os.chmod(self.fname, 0o000)
     os.chmod(os.path.dirname(self.fname), 0o000)
Esempio n. 18
0
 def setUp(self):
     self.fname = norm_file('tests/db-json/sqlitedict.sqlite')
     self.db = sqlitedict.SqliteDict(filename=self.fname,
                                     tablename='test',
                                     encode=json.dumps,
                                     decode=json.loads)
Esempio n. 19
0
 def setUp(self):
     db = norm_file('tests/db/sqlitedict-with-w-flag.sqlite')
     self.d = sqlitedict.SqliteDict(filename=db, flag="w")
Esempio n. 20
0
 def setUp(self):
     db = norm_file('tests/db/sqlitedict-autocommit.sqlite')
     self.d = sqlitedict.SqliteDict(filename=db, autocommit=True)
Esempio n. 21
0
 def setUp(self):
     db = norm_file('tests/db/sqlitedict-with-def.sqlite')
     self.d = sqlitedict.SqliteDict(filename=db)
Esempio n. 22
0
 def setUp(self):
     self.fname = norm_file('tests/db-permdenied/sqlitedict.sqlite')
     self.db = sqlitedict.SqliteDict(filename=self.fname)
     os.chmod(self.fname, 0o000)
     os.chmod(os.path.dirname(self.fname), 0o000)
Esempio n. 23
0
 def setUp(self):
     self.fname = norm_file('tests/db-json/sqlitedict.sqlite')
     self.db = SqliteDict(
         filename=self.fname, tablename='test', encode=json.dumps, decode=json.loads
     )
Esempio n. 24
0
 def setUp(self):
     db = norm_file('tests/db/sqlitedict-autocommit.sqlite')
     self.d = sqlitedict.SqliteDict(filename=db, autocommit=True)
Esempio n. 25
0
 def setUp(self):
     db = norm_file('tests/db/sqlitedict-with-w-flag.sqlite')
     self.d = sqlitedict.SqliteDict(filename=db, flag="w")