Exemple #1
0
def setup_app(settings):
    # intialize our tornado instance
    app = tornado.web.Application([
        (r"/", views.IndexHandler),
        (r"/signup", views.SignupHandler),
        (r"/signup/complete", views.SignupCompleteHandler),
        ], **settings)

    # couchdb setup
    if settings['db_user']:
        from restkit import BasicAuth
        server = Server(
            uri=settings['db_uri'],
            filters=[
                BasicAuth(settings['db_user'], settings['db_pass'])
                ],
            )
        db = server.get_or_create_db(settings['db_name'])
        # now attach our couchdb instance to the tornado app instance
        app.couchdb = db

        # setup couchdb views
        loader = FileSystemDocsLoader(path.join(
            path.dirname(__file__),
            '_design'
            ) )
        loader.sync(db, verbose=True)

    return app
Exemple #2
0
def loadDb( uri, db, filename ):
    httpagentparser.detectorshub.register( Google() )
    httpagentparser.detectorshub.register( Netcraft() )
    httpagentparser.detectorshub.register( Yahoo() )
    httpagentparser.detectorshub.register( AideRss() )
    httpagentparser.detectorshub.register( NetNewsWire() )

    s = Server( uri )
    database = s.get_or_create_db( db )
    session = create_session( s, db )

    for document in parse(filename):
        id = str( md5.new( ''.join( [document['time'].isoformat(), document['uri'], document['ip']] ) ).hexdigest() )
        document['_id'] = id
        if document['_id'] not in database:
            session(document).save()
Exemple #3
0
    def handle(self, *args, **options):
        if len(args) != 2:
            print "Usage: split_dbs [params] source target"
            return False

        if options['server']:
            server = Server(options['server'])
            print "Using user specified server"
        else:
            server = get_db("couchflow").server
            print "Using default couchflow server (override with --server)"
        print "Server uri:", server.uri

        params = {}
        qparams = {}

        if options['couchflow']:
            print "Couchflow pass"
            qparams['couchflow'] = '1'
        if options['no_couchflow']:
            print "No couchflow pass"
            qparams['couchflow'] = '0'
        if options['no_clones']:
            print "Filter out clones"
            qparams['no_clones'] = '1'

        if 'couchflow' in qparams or 'no_clones' in qparams:
            print "Using filter"
            params['filter'] = 'filters/couchflow'
            params['query_params'] = qparams

        if options['create_target']:
            params['create_target'] = True

        print "Starting replication"
        print "Check %s/_utils/status.html for status" % server.uri
        server.replicate(*args, **params)
        print "Done"
Exemple #4
0
    def handle(self, *args, **options):
        if len(args) != 2:
            print "Usage: split_dbs [params] source target"
            return False

        if options['server']:
            server = Server(options['server'])
            print "Using user specified server"
        else:
            server = get_db("couchflow").server
            print "Using default couchflow server (override with --server)"
        print "Server uri:", server.uri

        params = {}
        qparams = {}

        if options['couchflow']:
            print "Couchflow pass"
            qparams['couchflow'] = '1'
        if options['no_couchflow']:
            print "No couchflow pass"
            qparams['couchflow'] = '0'
        if options['no_clones']:
            print "Filter out clones"
            qparams['no_clones'] = '1'

        if 'couchflow' in qparams or 'no_clones' in qparams:
            print "Using filter"
            params['filter'] = 'filters/couchflow'
            params['query_params'] = qparams

        if options['create_target']:
            params['create_target'] = True

        print "Starting replication"
        print "Check %s/_utils/status.html for status" % server.uri
        server.replicate(*args, **params)
        print "Done"
Exemple #5
0
    def setUp(self):
        self.server = Server(url)
        self.db = map(self.server.get_or_create_db(db_name))
        # TODO: create greeting/all view
        design_doc = {
            '_id': '_design/greeting',
            'language': 'javascript',
            'views': {
                'all': {
                    "map": """
function (doc)
{
    if (doc.doc_type == "Greeting")
        emit(doc._id, doc);
}
"""
                }
            }
        }
        self.db.save_doc(design_doc)
Exemple #6
0
 def __init__(self):
     self.server = Server('http://192.168.56.101:5984')
     self.db = self.server.get_db('jlblog')
Exemple #7
0
class Context(object):
        #producao server = Server('https://*****:*****@jeanlopes.cloudant.com')
        def __init__(self):
            self.server = Server('http://192.168.56.101:5984')
            self.db = self.server.get_db('jlblog')
Exemple #8
0
def teste():
    s = Server('https://*****:*****@jeanlopes.cloudant.com')
    content = s.all_dbs()
    return query(content).to_str(' -- ')
Exemple #9
0
class MapperTestCase(unittest.TestCase):
    def setUp(self):
        self.server = Server(url)
        self.db = map(self.server.get_or_create_db(db_name))
        # TODO: create greeting/all view
        design_doc = {
            '_id': '_design/greeting',
            'language': 'javascript',
            'views': {
                'all': {
                    "map": """
function (doc)
{
    if (doc.doc_type == "Greeting")
        emit(doc._id, doc);
}
"""
                }
            }
        }
        self.db.save_doc(design_doc)
    
    def tearDown(self):
        self.server.delete_db(db_name)        
    
    def testMapping(self):
        # introduce our class to the mapper
        self.db.add(Greeting)
        self.assert_(issubclass(self.db.classes['Greeting'], (Greeting, Document)))
        # TODO: more stuff
        g = Greeting('Jannis', 'welcome to the mapping world')
        self.db['g'] = g
        mapped_g = self.db['g']
        self.assert_(mapped_g._id == 'g')
        self.assert_(isinstance(mapped_g, Greeting))
        self.assert_(g == mapped_g)
        greetings = [
            Greeting('Jannis', 'this is the first test greeting'),
            Greeting('Jannis again', 'this is the second test greeting')
        ]
        greetings[0]._id = 'first test greeting'
        greetings[1]._id = 'second test greeting'
        self.db.bulk_save(greetings)
        self.assert_([self.db['first test greeting'],
            self.db['second test greeting']] == greetings)
        h = Greeting('Xjs', 'Hi!')
        h2 = self.db.save_doc(h)
        h2_id = h2._id
        self.assertEquals(h, self.db[h2_id])
        self.db.delete_doc(h2)
        self.assertRaises(ResourceNotFound, self.db.__getitem__, h2_id)
        self.db.copy_doc(mapped_g, 'another_g')
        self.assertEquals(g, self.db['another_g'])
    
    def testViewResults(self):
        def frobnicate(obj):
            """Helper function that returns a greeting which is ``frobnicated''
            (this simulates an action being performed).
            
            Used as test for the wrapper func - because Mapper.view overwrites
            the mapper func passed to Database.view with a custom one in order
            to give back mapped objects but still retain the ability to pass
            a custom wrapper function."""
            greeting = obj['value']
            greeting.frobnicated = True
            return greeting
            
        # view generated in setUp
        all_greetings = self.db.view('greeting/all', wrapper=frobnicate)
        for greeting in all_greetings:
            # Test if we get a Greeting class back, not a Document or even dict
            self.assert_(isinstance(greeting, Greeting))
            # Test if custom wrapper function worked though Mapper mapped the
            # document (i. e. set a wrapper function itself)
            self.assert_(greeting.frobnicated)