コード例 #1
0
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.')
コード例 #2
0
 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)
コード例 #3
0
 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-"))
コード例 #4
0
 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"})
コード例 #5
0
 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'))
コード例 #6
0
 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'))