MissingDesignDocError: leaky abstraction on soledad.common
varac reports the following error when running the new soledad-client test on the platform:
= [donkey.unstable.bitmask.net] File "/srv/leap/tests/helpers/soledad_sync.py", line 29, in = [donkey.unstable.bitmask.net] from client_side_db import get_soledad_instance = [donkey.unstable.bitmask.net] File "/srv/leap/tests/helpers/client_side_db.py", line 16, in = [donkey.unstable.bitmask.net] from leap.soledad.client import Soledad = [donkey.unstable.bitmask.net] File "/usr/lib/python2.7/dist-packages/leap/soledad/client/__init__.py", line 20, in = [donkey.unstable.bitmask.net] from leap.soledad.client.api import Soledad = [donkey.unstable.bitmask.net] File "/usr/lib/python2.7/dist-packages/leap/soledad/client/api.py", line 57, in = [donkey.unstable.bitmask.net] from leap.soledad.client import adbapi = [donkey.unstable.bitmask.net] File "/usr/lib/python2.7/dist-packages/leap/soledad/client/adbapi.py", line 37, in = [donkey.unstable.bitmask.net] from leap.soledad.client import sqlcipher as soledad_sqlcipher = [donkey.unstable.bitmask.net] File "/usr/lib/python2.7/dist-packages/leap/soledad/client/sqlcipher.py", line 62, in = [donkey.unstable.bitmask.net] from leap.soledad.client.sync import SoledadSynchronizer = [donkey.unstable.bitmask.net] File "/usr/lib/python2.7/dist-packages/leap/soledad/client/sync.py", line 25, in = [donkey.unstable.bitmask.net] from leap.soledad.common.couch.errors import MissingDesignDocError = [donkey.unstable.bitmask.net] File "/usr/lib/python2.7/dist-packages/leap/soledad/common/couch/__init__.py", line 35, in = [donkey.unstable.bitmask.net] from couchdb.client import Server, Database = [donkey.unstable.bitmask.net] ImportError: No module named couchdb.client
in my view, the responsible for this is the leaky abstraction behind MissingDesignDocError in the client. This is pulling soledad.common.couch, which tries to import couchdb.
My proposed fix would be to derive that exception from a common, more generic parent.
(from redmine: created on 2015-11-19, closed on 2015-12-01)