コード例 #1
0
    def setUp(self):
        """ Initialises test by adding dummy log entries """
        from invenio_records.api import create_record
        from invenio_records.models import Record

        self.__transaction = db.session.begin_nested()
        for i in range(10):
            rec = Record(id=i + 1)
            db.session.add(rec)
            create_record({'recid': i + 1})

        from inspire.modules.citations.tasks import update_citations_log
        data = u'[[1, 2, 1, "added", "2013-04-25 04:20:30"],[2, 3, 1, "added", "2013-04-25 04:20:30"],[3, 5, 1, "added", "2013-04-25 04:20:30"],[4, 4, 2, "added", "2013-04-25 04:20:30"],[5, 5, 2, "added", "2013-04-25 04:20:30"],[6, 6, 2, "added", "2013-04-25 04:20:30"],[7, 10, 4, "added", "2013-04-25 04:20:30"],[8, 5, 1, "removed", "2013-04-25 04:20:30"],[9, 5, 4, "added", "2013-04-25 04:20:30"],[10, 6, 4, "added", "2013-04-25 04:20:30"],[11, 3, 4, "added", "2013-04-25 04:20:31"],[12, 8, 5, "added", "2013-04-25 04:20:31"],[13, 10, 4, "removed", "2013-04-25 04:20:31"],[14, 7, 6, "added", "2013-04-25 04:20:31"],[15, 9, 6, "added", "2013-04-25 04:20:31"],[16, 10, 6, "added", "2013-04-25 04:20:31"],[17, 1, 7, "added", "2013-04-25 04:20:31"],[18, 8, 7, "added", "2013-04-25 04:20:31"],[19, 10, 7, "added", "2013-04-25 04:20:31"],[20, 3, 8, "added", "2013-04-25 04:20:31"],[21, 10, 9, "added", "2013-04-25 04:20:31"],[22, 3, 9, "added", "2013-04-25 04:20:31"],[23, 3, 8, "removed", "2013-04-25 04:20:31"],[24, 1, 10, "added", "2013-04-25 04:20:31"],[25, 2, 10, "added", "2013-04-25 04:20:31"],[26, 3, 10, "added", "2013-04-25 04:20:31"]]'
        # Mocks two responses. The first one contains the dummy data and the second an empty list
        # to force update_citations_log() to terminate.
        httpretty.register_uri(
            httpretty.GET,
            cfg.get("CITATIONS_FETCH_LEGACY_URL"),
            responses=[
                httpretty.Response(body=data, status=200),
                httpretty.Response(body='[]', status=200),
            ]
        )
        Citation.query.delete()
        Citation_Log.query.delete()
        update_citations_log()
コード例 #2
0
ファイル: tasks.py プロジェクト: CharlotteIrisC/invenio
    def create(obj, dummy_eng):
        #FIXME change share tmp directory
        d = Deposition(obj)

        sip = d.get_latest_sip(sealed=True)
        sip.seal() #FIXME ???

        create_record(data=sip.metadata)

        d.update()
コード例 #3
0
    def create(obj, dummy_eng):
        # FIXME change share tmp directory
        d = Deposition(obj)

        sip = d.get_latest_sip(sealed=True)
        sip.seal()  # FIXME ???

        create_record(data=sip.metadata)

        d.update()
コード例 #4
0
ファイル: upload.py プロジェクト: gitter-badger/inspire-next
def _store_record(record):
    """Update existing record via `control_number` or create new."""
    if "control_number" in record:
        existing_record = get_record(record['control_number'])
        if existing_record is not None:
            patch = jsonpatch.JsonPatch.from_diff(existing_record, record)
            updated_record = existing_record.patch(patch=patch)
            updated_record.commit()
        else:
            # New record with some hardcoded recid/control_number
            create_record(data=record)
    else:
        create_record(data=record)
コード例 #5
0
    def setUp(self):

        from invenio_records.api import create_record
        from invenio_records.models import Record
        self.marcxml_file = pkg_resources.resource_stream('tests',
                                                          os.path.join(
                                                              'fixtures',
                                                              'test_citation_counts.xml')
                                                          )

        self.converted_record = convert_marcxml(self.marcxml_file).next()
        self._transaction = db.session.begin_nested()
        self.cited_recids = [r['recid'] for r in self.converted_record['references'] if r.get('recid')]
        self.new_recid = self.converted_record['control_number']
        self.expected_citation_counts_after_insert = Counter()
        self.citation_counts_after_insert = Counter()

        for cited_recid in self.cited_recids:
            references_to_cited_recid = [r['recid']
                                         for r in Query('refersto:' + str(cited_recid)).search().records()
                                         if r.get('recid')]
            queried_records = Query('control_number:' + str(cited_recid)).search().records()
            cited_record = queried_records[0] if queried_records else None

            if cited_record:
                if int(self.new_recid) in references_to_cited_recid:
                    self.expected_citation_counts_after_insert[cited_recid] = cited_record.get('citation_count', 0)
                else:
                    self.expected_citation_counts_after_insert[cited_recid] = \
                        cited_record.get('citation_count', 0) + 1

        self.record = Record(id=self.new_recid)
        db.session.add(self.record)
        create_record(self.converted_record)

        # we need to make sure the new record has been already indexed
        timeout = 15  # [seconds]
        timeout_start = time.time()
        while time.time() < timeout_start + timeout:
            if len(Query('control_number:' + self.new_recid).search()) > 0:
                break
            else:
                time.sleep(1)

        # wait a few seconds to make sure that the field citation_count of cited records have been updated
        time.sleep(6)
コード例 #6
0
def create_record(obj, eng):
    """Create record with Record API."""
    from invenio_records.api import create_record
    create_record(obj.data)
コード例 #7
0
def create_record(obj, eng):
    """Create record with Record API."""
    from invenio_records.api import create_record
    create_record(obj.data)