예제 #1
0
    def test_bigtest05(self):
        '''Get recids_hm_intint'''

        message = self.bridge.createMessage('bigtest') \
                    .setParam('action', 'recids_hm_intint') \
                    .setParam('size', self.size)
        self.bridge.sendMessage(message)
        res = HashMap.cast_(message.getResults())
        assert res.size() == self.size
        assert Integer.cast_(res.get(0)).equals(0)
        assert Integer.cast_(res.get(5)).equals(5)
예제 #2
0
파일: targets.py 프로젝트: lbjay/montysolr
def get_recids_changes(message):
    """Retrieves the recids of the last changed documents"""
    last_recid = None
    table = 'bibrec'
    if message.getParam("table"):
        table = str(message.getParam("table"))
    if message.getParam("last_recid"):
        #last_recid = int(Integer.cast_(message.getParam("last_recid")).intValue())
        last_recid = int(str(message.getParam("last_recid")))
    mod_date = None
    if message.getParam("mod_date"):
        mod_date = str(message.getParam("mod_date"))
    max_records = 10000
    if message.getParam('max_records'):
        max_records = int(Integer.cast_(message.getParam("max_records")).intValue())
    if last_recid and last_recid == -1:
        mod_date = None
    (wid, results) = api_calls.dispatch("get_recids_changes", last_recid, max_recs=max_records, 
                                        mod_date=mod_date, table=table)
    if results:
        data, last_recid, mod_date = results
        out = HashMap() #.of_(String, JArray_int)
        for k,v in data.items():
            out.put(k, JArray_int(v))
        message.setResults(out)
        message.setParam('mod_date', mod_date)
        message.setParam('last_recid', last_recid)
예제 #3
0
파일: targets.py 프로젝트: lbjay/montysolr
def diagnostic_test(message):
    out = []
    message.setParam("query", "boson")
    perform_request_search_ints(message)
    res = JArray_int.cast_(message.getResults())
    out.append('Search for "boson" retrieved: %s hits' % len(res) )
    out.append('Total hits: %s' % Integer.cast_(message.getParam("total")))
    message.setResults('\n'.join(out))
예제 #4
0
    def xtest_bigtest05(self):
        '''Get recids_hm_intint -- TODO: move to demotest,
        it will not work, because it needs solr instance'''

        #req = QueryRequest()
        size = self.size
        hm = HashMap().of_(String, String)
        hm.put('action', 'recids_hm_intint')
        hm.put('size', str(size))
        params = MapSolrParams(hm)
        req = LocalSolrQueryRequest(self.core, params)
        rsp = SolrQueryResponse()

        message = self.bridge.createMessage('bigtest_www') \
                    .setParam('response', rsp) \
                    .setParam('request', req)

        self.bridge.sendMessage(message)

        res = HashMap.cast_(message.getResults())
        assert res.size() == self.size
        assert Integer.cast_(res.get(0)).equals(0)
        assert Integer.cast_(res.get(5)).equals(5)
예제 #5
0
def delete_record(message):
    """deletes record"""
    diff = message.getParam('diff')
    if diff:
        diff = int(str(diff))
    else:
        diff = 5 # 5 secs older
    recid = int(Integer.cast_(message.getParam('recid')).intValue())
    record = search_engine.get_record(recid)
    bibrecord.record_add_field(record, "980", subfields=[("c", "DELETED")])
    ret = bibupload.bibupload(record, opt_mode='replace')
    recid = ret[1]
    message.setResults(Integer(recid))
    
    # extra query needed because invenio sets modification date=NOW()
    # and so the deleted recs have modification_date<creation_date
    #dbquery.run_sql("UPDATE bibrec SET modification_date=NOW() + %s WHERE id=%s" % (diff, recid))
    change_date(recid, diff=diff)
예제 #6
0
    def test_get_recids_deleted(self):
        
        #time.sleep(1) # otherwise the new record has the same creation time as the old recs
        #message = self.bridge.createMessage('create_delete')
        #self.bridge.sendMessage(message)
        message = self.bridge.createMessage('create_record')
        self.bridge.sendMessage(message)
        created_recid = int(Integer.cast_(message.getResults()).intValue())
        
        message = self.bridge.createMessage('delete_record').setParam('recid', created_recid)
        self.bridge.sendMessage(message)
        deleted_recid = int(str(message.getResults()))
        
        
        req = QueryRequest()
        rsp = SolrQueryResponse()

        message = self.bridge.createMessage('get_recids_changes') \
                    .setSender('InvenioKeepRecidUpdated') \
                    .setParam('response', rsp) \
                    .setParam('last_recid', 30)
        self.bridge.sendMessage(message)

        results = message.getResults()
        out = HashMap.cast_(results)
        
        added = JArray_int.cast_(out.get('ADDED'))
        updated = JArray_int.cast_(out.get('UPDATED'))
        deleted = JArray_int.cast_(out.get('DELETED'))
        
        
        message = self.bridge.createMessage('wipeout_record') \
                  .setParam('recid', deleted_recid)
        self.bridge.sendMessage(message)
        assert created_recid == deleted_recid
        assert len(added) == 0
        assert len(updated) == 0
        assert len(deleted) == 1
        
        assert int(str(deleted[0])) == deleted_recid 
예제 #7
0
def wipeout_record(message):
    recid = int(Integer.cast_(message.getParam('recid')).intValue())
    bibupload_regression_tests.wipe_out_record_from_all_tables(recid)