diff options
author | drebs <drebs@leap.se> | 2013-01-24 12:03:45 -0200 |
---|---|---|
committer | drebs <drebs@leap.se> | 2013-01-24 12:03:45 -0200 |
commit | 71df5a4431bce607550eec4425f4fdfbdbfa2af7 (patch) | |
tree | f71347068d0a9296c857a5027728130e7ed14ca8 /tests/test_sqlcipher.py | |
parent | 3bf11c9109a457ddbeb47524e34a5c1fd97bd27c (diff) | |
parent | 2f761fea9e72554806b012c64d00fcae80e1d254 (diff) |
Merge branch 'feature/soledad-api' into develop
Conflicts:
src/leap/soledad/util.py
Diffstat (limited to 'tests/test_sqlcipher.py')
-rw-r--r-- | tests/test_sqlcipher.py | 46 |
1 files changed, 29 insertions, 17 deletions
diff --git a/tests/test_sqlcipher.py b/tests/test_sqlcipher.py index 9e3b4052..d2fe0b11 100644 --- a/tests/test_sqlcipher.py +++ b/tests/test_sqlcipher.py @@ -11,7 +11,7 @@ import threading from u1db import ( errors, query_parser, - ) +) from u1db.backends.sqlite_backend import SQLitePartialExpandDatabase # soledad stuff. @@ -29,6 +29,7 @@ from leap.soledad.tests.u1db_tests import test_open PASSWORD = '123456' + #----------------------------------------------------------------------------- # The following tests come from `u1db.tests.test_common_backend`. #----------------------------------------------------------------------------- @@ -77,8 +78,8 @@ def copy_sqlcipher_database_for_test(test, db): SQLCIPHER_SCENARIOS = [ ('sqlcipher', {'make_database_for_test': make_sqlcipher_database_for_test, 'copy_database_for_test': copy_sqlcipher_database_for_test, - 'make_document_for_test': tests.make_document_for_test,}), - ] + 'make_document_for_test': tests.make_document_for_test, }), +] class SQLCipherTests(test_backends.AllDatabaseTests): @@ -89,15 +90,18 @@ class SQLCipherDatabaseTests(test_backends.LocalDatabaseTests): scenarios = SQLCIPHER_SCENARIOS -class SQLCipherValidateGenNTransIdTests(test_backends.LocalDatabaseValidateGenNTransIdTests): +class SQLCipherValidateGenNTransIdTests( + test_backends.LocalDatabaseValidateGenNTransIdTests): scenarios = SQLCIPHER_SCENARIOS -class SQLCipherValidateSourceGenTests(test_backends.LocalDatabaseValidateSourceGenTests): +class SQLCipherValidateSourceGenTests( + test_backends.LocalDatabaseValidateSourceGenTests): scenarios = SQLCIPHER_SCENARIOS -class SQLCipherWithConflictsTests(test_backends.LocalDatabaseWithConflictsTests): +class SQLCipherWithConflictsTests( + test_backends.LocalDatabaseWithConflictsTests): scenarios = SQLCIPHER_SCENARIOS @@ -157,14 +161,16 @@ class TestSQLCipherDatabase(test_sqlite_backend.TestSQLiteDatabase): self.assertTrue(db2._is_initialized(db1._get_sqlite_handle().cursor())) -class TestSQLCipherPartialExpandDatabase(test_sqlite_backend.TestSQLitePartialExpandDatabase): +class TestSQLCipherPartialExpandDatabase( + test_sqlite_backend.TestSQLitePartialExpandDatabase): # The following tests had to be cloned from u1db because they all # instantiate the backend directly, so we need to change that in order to # our backend be instantiated in place. def setUp(self): - super(test_sqlite_backend.TestSQLitePartialExpandDatabase, self).setUp() + super(test_sqlite_backend.TestSQLitePartialExpandDatabase, + self).setUp() self.db = SQLCipherDatabase(':memory:', PASSWORD) self.db._set_replica_uid('test') @@ -216,7 +222,8 @@ class TestSQLCipherPartialExpandDatabase(test_sqlite_backend.TestSQLitePartialEx path = temp_dir + '/test.sqlite' SQLCipherDatabase(path, PASSWORD) db2 = SQLCipherDatabase._open_database( - path, PASSWORD, document_factory=test_backends.TestAlternativeDocument) + path, PASSWORD, + document_factory=test_backends.TestAlternativeDocument) self.assertEqual(test_backends.TestAlternativeDocument, db2._factory) def test_open_database_existing(self): @@ -231,7 +238,8 @@ class TestSQLCipherPartialExpandDatabase(test_sqlite_backend.TestSQLitePartialEx path = temp_dir + '/existing.sqlite' SQLCipherDatabase(path, PASSWORD) db2 = SQLCipherDatabase.open_database( - path, PASSWORD, create=False, document_factory=test_backends.TestAlternativeDocument) + path, PASSWORD, create=False, + document_factory=test_backends.TestAlternativeDocument) self.assertEqual(test_backends.TestAlternativeDocument, db2._factory) def test_create_database_initializes_schema(self): @@ -244,7 +252,8 @@ class TestSQLCipherPartialExpandDatabase(test_sqlite_backend.TestSQLitePartialEx c.execute("SELECT * FROM u1db_config") config = dict([(r[0], r[1]) for r in c.fetchall()]) self.assertEqual({'sql_schema': '0', 'replica_uid': 'test', - 'index_storage': 'expand referenced encrypted'}, config) + 'index_storage': 'expand referenced encrypted'}, + config) #----------------------------------------------------------------------------- @@ -289,6 +298,7 @@ class SQLCipherOpen(test_open.TestU1DBOpen): self.addCleanup(db2.close) self.assertIsInstance(db2, SQLCipherDatabase) + #----------------------------------------------------------------------------- # Tests for actual encryption of the database #----------------------------------------------------------------------------- @@ -313,8 +323,8 @@ class SQLCipherEncryptionTest(unittest.TestCase): doc = db.create_doc_from_json(tests.simple_doc) db.close() try: - # trying to open an encrypted database with the regular u1db backend - # should raise a DatabaseError exception. + # trying to open an encrypted database with the regular u1db + # backend should raise a DatabaseError exception. SQLitePartialExpandDatabase(self.DB_FILE) raise DatabaseIsNotEncrypted() except DatabaseError: @@ -323,16 +333,18 @@ class SQLCipherEncryptionTest(unittest.TestCase): # encrypted. db = SQLCipherDatabase(self.DB_FILE, PASSWORD) doc = db.get_doc(doc.doc_id) - self.assertEqual(tests.simple_doc, doc.get_json(), 'decrypted content mismatch') + self.assertEqual(tests.simple_doc, doc.get_json(), + 'decrypted content mismatch') def test_try_to_open_raw_db_with_sqlcipher_backend(self): db = SQLitePartialExpandDatabase(self.DB_FILE) db.create_doc_from_json(tests.simple_doc) db.close() try: - # trying to open the a non-encrypted database with sqlcipher backend - # should raise a DatabaseIsNotEncrypted exception. + # trying to open the a non-encrypted database with sqlcipher + # backend should raise a DatabaseIsNotEncrypted exception. SQLCipherDatabase(self.DB_FILE, PASSWORD) - raise DatabaseError("SQLCipher backend should not be able to open non-encrypted dbs.") + raise DatabaseError("SQLCipher backend should not be able to open " + "non-encrypted dbs.") except DatabaseIsNotEncrypted: pass |