Soledad should not depend on pysqlite
Currently, soledad's sqlcipher backend depends on @pysqlcipher@ and tests will fail with the following errors if @pysqlite@ is not also present:
====================================================================== ERROR: test_sync_detects_diverged_source (leap.soledad.tests.test_sqlcipher.SQLCipherDatabaseSyncTests) leap.soledad.tests.test_sqlcipher.SQLCipherDatabaseSyncTests.test_sync_detects_diverged_source (sqlcipher) ---------------------------------------------------------------------- _StringException: Traceback (most recent call last): File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/u1db_tests/test_sync.py", line 1073, in test_sync_detects_diverged_source db3 = self.copy_database(self.db1) File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/u1db_tests/test_sync.py", line 488, in copy_database db_copy = super(DatabaseSyncTests, self).copy_database(db) File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/u1db_tests/__init__.py", line 201, in copy_database return self.copy_database_for_test(self, db) File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/test_sqlcipher.py", line 105, in copy_sqlcipher_database_for_test for line in db._db_handle.iterdump(): ImportError: No module named pysqlite2.dump ====================================================================== ERROR: test_sync_detects_diverged_target (leap.soledad.tests.test_sqlcipher.SQLCipherDatabaseSyncTests) leap.soledad.tests.test_sqlcipher.SQLCipherDatabaseSyncTests.test_sync_detects_diverged_target (sqlcipher) ---------------------------------------------------------------------- _StringException: Traceback (most recent call last): File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/u1db_tests/test_sync.py", line 1083, in test_sync_detects_diverged_target db3 = self.copy_database(self.db2) File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/u1db_tests/test_sync.py", line 488, in copy_database db_copy = super(DatabaseSyncTests, self).copy_database(db) File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/u1db_tests/__init__.py", line 201, in copy_database return self.copy_database_for_test(self, db) File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/test_sqlcipher.py", line 105, in copy_sqlcipher_database_for_test for line in db._db_handle.iterdump(): ImportError: No module named pysqlite2.dump ====================================================================== ERROR: test_sync_detects_rollback_and_divergence_in_source (leap.soledad.tests.test_sqlcipher.SQLCipherDatabaseSyncTests) leap.soledad.tests.test_sqlcipher.SQLCipherDatabaseSyncTests.test_sync_detects_rollback_and_divergence_in_source (sqlcipher) ---------------------------------------------------------------------- _StringException: Traceback (most recent call last): File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/u1db_tests/test_sync.py", line 1095, in test_sync_detects_rollback_and_divergence_in_source db1_copy = self.copy_database(self.db1) File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/u1db_tests/test_sync.py", line 488, in copy_database db_copy = super(DatabaseSyncTests, self).copy_database(db) File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/u1db_tests/__init__.py", line 201, in copy_database return self.copy_database_for_test(self, db) File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/test_sqlcipher.py", line 105, in copy_sqlcipher_database_for_test for line in db._db_handle.iterdump(): ImportError: No module named pysqlite2.dump ====================================================================== ERROR: test_sync_detects_rollback_and_divergence_in_target (leap.soledad.tests.test_sqlcipher.SQLCipherDatabaseSyncTests) leap.soledad.tests.test_sqlcipher.SQLCipherDatabaseSyncTests.test_sync_detects_rollback_and_divergence_in_target (sqlcipher) ---------------------------------------------------------------------- _StringException: Traceback (most recent call last): File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/u1db_tests/test_sync.py", line 1109, in test_sync_detects_rollback_and_divergence_in_target db2_copy = self.copy_database(self.db2) File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/u1db_tests/test_sync.py", line 488, in copy_database db_copy = super(DatabaseSyncTests, self).copy_database(db) File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/u1db_tests/__init__.py", line 201, in copy_database return self.copy_database_for_test(self, db) File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/test_sqlcipher.py", line 105, in copy_sqlcipher_database_for_test for line in db._db_handle.iterdump(): ImportError: No module named pysqlite2.dump ====================================================================== ERROR: test_sync_detects_rollback_in_source (leap.soledad.tests.test_sqlcipher.SQLCipherDatabaseSyncTests) leap.soledad.tests.test_sqlcipher.SQLCipherDatabaseSyncTests.test_sync_detects_rollback_in_source (sqlcipher) ---------------------------------------------------------------------- _StringException: Traceback (most recent call last): File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/u1db_tests/test_sync.py", line 1053, in test_sync_detects_rollback_in_source db1_copy = self.copy_database(self.db1) File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/u1db_tests/test_sync.py", line 488, in copy_database db_copy = super(DatabaseSyncTests, self).copy_database(db) File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/u1db_tests/__init__.py", line 201, in copy_database return self.copy_database_for_test(self, db) File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/test_sqlcipher.py", line 105, in copy_sqlcipher_database_for_test for line in db._db_handle.iterdump(): ImportError: No module named pysqlite2.dump ====================================================================== ERROR: test_sync_detects_rollback_in_target (leap.soledad.tests.test_sqlcipher.SQLCipherDatabaseSyncTests) leap.soledad.tests.test_sqlcipher.SQLCipherDatabaseSyncTests.test_sync_detects_rollback_in_target (sqlcipher) ---------------------------------------------------------------------- _StringException: Traceback (most recent call last): File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/u1db_tests/test_sync.py", line 1064, in test_sync_detects_rollback_in_target db2_copy = self.copy_database(self.db2) File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/u1db_tests/test_sync.py", line 488, in copy_database db_copy = super(DatabaseSyncTests, self).copy_database(db) File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/u1db_tests/__init__.py", line 201, in copy_database return self.copy_database_for_test(self, db) File "/home/drjohn/projetos/leap/repos/soledad/soledad/src/leap/soledad/tests/test_sqlcipher.py", line 105, in copy_sqlcipher_database_for_test for line in db._db_handle.iterdump(): ImportError: No module named pysqlite2.dump ---------------------------------------------------------------------- Ran 312 tests in 75.442s FAILED (errors=6, skipped=7)
Steps to reproduce:
- Create venv.
- Install @leap.common@.
- Install @leap.soledad_server@
- cd to leap.soledad's dir and run @python setup.py tests -s leap.soledad.tests.test_sqlcipher@.
(from redmine: created on 2013-06-20, closed on 2015-09-15)