def setUp(self): super(ServerAuthenticationMiddlewareTestCase, self).setUp() app = mock.Mock() self._state = CouchServerState(self.couch_url) app.state = self._state self.auth_middleware = SoledadTokenAuthMiddleware(app) self._authorize('valid-uuid', 'valid-token')
class ServerAuthenticationMiddlewareTestCase(CouchDBTestCase): def setUp(self): super(ServerAuthenticationMiddlewareTestCase, self).setUp() app = mock.Mock() self._state = CouchServerState(self.couch_url) app.state = self._state self.auth_middleware = SoledadTokenAuthMiddleware(app) self._authorize('valid-uuid', 'valid-token') def _authorize(self, uuid, token): token_doc = {} token_doc['_id'] = sha512(token).hexdigest() token_doc[self._state.TOKENS_USER_ID_KEY] = uuid token_doc[self._state.TOKENS_TYPE_KEY] = \ self._state.TOKENS_TYPE_DEF dbname = self._state._tokens_dbname() db = self.couch_server.create(dbname) db.save(token_doc) self.addCleanup(self.delete_db, db.name) def test_authorized_user(self): is_authorized = self.auth_middleware._verify_authentication_data self.assertTrue(is_authorized('valid-uuid', 'valid-token')) self.assertFalse(is_authorized('valid-uuid', 'invalid-token')) self.assertFalse(is_authorized('invalid-uuid', 'valid-token')) self.assertFalse(is_authorized('eve', 'invalid-token'))
def setUp(self): super(ServerAuthenticationMiddlewareTestCase, self).setUp() app = mock.Mock() self._state = CouchServerState(self.couch_url) app.state = self._state self.auth_middleware = SoledadTokenAuthMiddleware(app) self._authorize("valid-uuid", "valid-token")
class ServerAuthenticationMiddlewareTestCase(CouchDBTestCase): def setUp(self): super(ServerAuthenticationMiddlewareTestCase, self).setUp() app = mock.Mock() self._state = CouchServerState(self.couch_url) app.state = self._state self.auth_middleware = SoledadTokenAuthMiddleware(app) self._authorize("valid-uuid", "valid-token") def _authorize(self, uuid, token): token_doc = {} token_doc["_id"] = sha512(token).hexdigest() token_doc[self._state.TOKENS_USER_ID_KEY] = uuid token_doc[self._state.TOKENS_TYPE_KEY] = self._state.TOKENS_TYPE_DEF dbname = self._state._tokens_dbname() db = self.couch_server.create(dbname) db.save(token_doc) self.addCleanup(self.delete_db, db.name) def test_authorized_user(self): is_authorized = self.auth_middleware._verify_authentication_data self.assertTrue(is_authorized("valid-uuid", "valid-token")) self.assertFalse(is_authorized("valid-uuid", "invalid-token")) self.assertFalse(is_authorized("invalid-uuid", "valid-token")) self.assertFalse(is_authorized("eve", "invalid-token"))
def application(environ, start_response): conf = load_configuration('/etc/soledad/soledad-server.conf') conf = conf['soledad-server'] state = CouchServerState(conf['couch_url'], create_cmd=conf['create_cmd']) SoledadBackend.BATCH_SUPPORT = conf['batching'] # WSGI application that may be used by `twistd -web` application = GzipMiddleware(SoledadTokenAuthMiddleware(SoledadApp(state))) return application(environ, start_response)
def test_wrong_couch_version_raises(self): wrong_schema_version = SCHEMA_VERSION + 1 self.db.create({ '_id': CONFIG_DOC_ID, SCHEMA_VERSION_KEY: wrong_schema_version }) with pytest.raises(WrongCouchSchemaVersionError): CouchServerState(self.couch_url, create_cmd='/bin/echo', check_schema_versions=True)
def make_app(self): self.request_state = CouchServerState(self.couch_url) return self.make_app_with_state(self.request_state)
def _get_backend_from_config(): conf = get_config() if conf['blobs']: return BlobsServerState("filesystem", blobs_path=conf['blobs_path']) return CouchServerState(conf['couch_url'])
def _get_couch_state(conf): state = CouchServerState(conf['couch_url'], create_cmd=conf['create_cmd']) SoledadBackend.BATCH_SUPPORT = conf.get('batching', False) return state
def test_missing_config_doc_raises(self): self.db.create({}) with pytest.raises(MissingCouchConfigDocumentError): CouchServerState(self.couch_url, create_cmd='/bin/echo', check_schema_versions=True)
def _get_couch_state(): conf = _load_config() state = CouchServerState(conf['couch_url'], create_cmd=conf['create_cmd'], check_schema_versions=True) SoledadBackend.BATCH_SUPPORT = conf.get('batching', False) return state