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'])
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()
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()
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()
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())
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())
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')
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()
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))
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())
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())
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()
def build_with_bad_flag(): fname = norm_file('tests/db/sqlitedict-override-test.sqlite') orig_db = sqlitedict.SqliteDict(filename=fname, flag = 'FOO')
def build_with_bad_flag(): fname = norm_file('tests/db/sqlitedict-override-test.sqlite') orig_db = sqlitedict.SqliteDict(filename=fname, flag='FOO')
def setUp(self): db = norm_file('tests/db/sqlitedict-with-def.sqlite') self.d = sqlitedict.SqliteDict(filename=db)
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)
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)
def setUp(self): db = norm_file('tests/db/sqlitedict-with-w-flag.sqlite') self.d = sqlitedict.SqliteDict(filename=db, flag="w")
def setUp(self): db = norm_file('tests/db/sqlitedict-autocommit.sqlite') self.d = sqlitedict.SqliteDict(filename=db, autocommit=True)
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 )