def create_db_sentiments(conn): """ Make "sentiments" database """ logging.info('Creating database "sentiments"...') db_sentiments = conn.create_database('sentiments') logging.info('Done creating database.') # create summary view logging.info('Creating views in database "sentiments"...') summary_ddoc = DesignDocument(db_sentiments, document_id='summary') with open('db/sentiments/summary.design.json') as f: ddoc_spec = json.load(f) for view_spec in ddoc_spec['views']: fns = ddoc_spec['views'][view_spec] map_fn = fns['map'] if 'reduce' in fns: reduce_fn = fns['reduce'] summary_ddoc.add_view(view_spec, map_fn, reduce_fn) else: summary_ddoc.add_view(view_spec, map_fn) summary_ddoc.create() logging.info('Finished creating views.')
def test_fetch_existing_design_document_with_docid_encoded_url(self): """ Test fetching design document content from an existing document where the document id requires an encoded url """ ddoc = DesignDocument(self.db, "_design/http://example.com") ddoc.create() new_ddoc = DesignDocument(self.db, "_design/http://example.com") new_ddoc.fetch() self.assertEqual(new_ddoc, ddoc)
def test_create_design_document_with_docid_encoded_url(self): """ Test creating a design document providing an id that has an encoded url """ ddoc = DesignDocument(self.db, "_design/http://example.com") self.assertFalse(ddoc.exists()) self.assertIsNone(ddoc.get("_rev")) ddoc.create() self.assertTrue(ddoc.exists()) self.assertTrue(ddoc.get("_rev").startswith("1-"))
def test_delete_design_document_success_with_encoded_url(self): """ Test that we can remove a design document from the remote database successfully when the document id requires an encoded url. """ ddoc = DesignDocument(self.db, "_design/http://example.com") ddoc.create() self.assertTrue(ddoc.exists()) ddoc.delete() self.assertFalse(ddoc.exists()) self.assertEqual(ddoc, {"_id": "_design/http://example.com"})
def test_get_feed_using_filter(self): """ Test getting content back for a feed using filter """ self.populate_db_with_documents(6) ddoc = DesignDocument(self.db, '_design/ddoc001') ddoc['filters'] = { 'even_docs': 'function(doc, req){if (doc.age % 2 != 0){return false;} return true;}' } ddoc.create() feed = Feed(self.db, filter='ddoc001/even_docs') changes = list() for change in feed: self.assertSetEqual(set(change.keys()), set(['seq', 'changes', 'id'])) changes.append(change) expected = set(['julia000', 'julia002', 'julia004']) self.assertSetEqual(set([x['id'] for x in changes]), expected) self.assertTrue(str(feed.last_seq).startswith('7'))