Пример #1
0
    def test_11_oag_callback_02_finished(self):
        cb = workflow.oag_callback_closure()

        job = models.SpreadsheetJob()
        job.save()

        state = oagclient.RequestState(["PMC1234", "PMC9876"], max_retries=1)
        state.record_requested(["PMC1234", "PMC9876"])

        oagrlink = models.OAGRLink()
        oagrlink.spreadsheet_id = job.id
        oagrlink.oagrjob_id = state.id
        oagrlink.save()

        record = models.Record()
        record.upload_id = job.id
        record.pmcid = "PMC1234"
        record.save()

        record = models.Record()
        record.upload_id = job.id
        record.pmcid = "PMC9876"
        record.save()

        time.sleep(2)

        cb("finished", state)

        time.sleep(2)

        r1 = models.Record.get_by_identifier("PMC1234", job.id, "pmcid").next()
        r2 = models.Record.get_by_identifier("PMC9876", job.id, "pmcid").next()

        assert r1.in_oag is False
        assert len(r1.provenance) == 1
        assert r1.provenance[0][2].startswith(
            "Attempted to retrieve PMC1234 1")
        assert r1.oag_pmcid == "error"
        assert r1.oag_complete is True

        assert r2.in_oag is False
        assert r2.oag_pmcid == "error"
        assert len(r2.provenance) == 1
        assert r2.provenance[0][2].startswith(
            "Attempted to retrieve PMC9876 1")
        assert r2.oag_complete is True
Пример #2
0
    def test_11_oag_callback_02_finished(self):
        cb = workflow.oag_callback_closure()

        job = models.SpreadsheetJob()
        job.save()

        state = oagclient.RequestState(["PMC1234", "PMC9876"], max_retries=1)
        state.record_requested(["PMC1234", "PMC9876"])

        oagrlink = models.OAGRLink()
        oagrlink.spreadsheet_id = job.id
        oagrlink.oagrjob_id = state.id
        oagrlink.save()

        record = models.Record()
        record.upload_id = job.id
        record.pmcid = "PMC1234"
        record.save()

        record = models.Record()
        record.upload_id = job.id
        record.pmcid = "PMC9876"
        record.save()

        time.sleep(2)

        cb("finished", state)

        time.sleep(2)

        r1 = models.Record.get_by_identifier("PMC1234", job.id, "pmcid").next()
        r2 = models.Record.get_by_identifier("PMC9876", job.id, "pmcid").next()

        assert r1.in_oag is False
        assert len(r1.provenance) == 1
        assert r1.provenance[0][2].startswith("Attempted to retrieve PMC1234 1")
        assert r1.oag_pmcid == "error"
        assert r1.oag_complete is True

        assert r2.in_oag is False
        assert r2.oag_pmcid == "error"
        assert len(r2.provenance) == 1
        assert r2.provenance[0][2].startswith("Attempted to retrieve PMC9876 1")
        assert r2.oag_complete is True
Пример #3
0
    def test_11_oag_callback_01_cycle(self):
        cb = workflow.oag_callback_closure()
        assert cb is not None

        import types
        assert type(cb) == types.FunctionType

        job = models.SpreadsheetJob()
        job.save()

        state = oagclient.RequestState(["PMC1234", "PMC9876"])
        oag_response = {
            "results" : [
                {
                    "identifier" : [{"id" : "PMC1234", "type" : "epmc", "canonical" : "PMC1234"}],
                    "license" : [
                        {
                            "type" : "cc-by",
                            "provenance" : {"description" : "SUCCESS"}
                        }
                    ]
                }
            ],
            "errors" : [
                {
                    "identifier" : {"id" : "PMC9876", "type" : "epmc", "canonical" : "PMC9876"},
                    "error" : "ERROR"
                }
            ]
        }
        state.record_result(oag_response)

        oagrlink = models.OAGRLink()
        oagrlink.spreadsheet_id = job.id
        oagrlink.oagrjob_id = state.id
        oagrlink.save()

        record = models.Record()
        record.upload_id = job.id
        record.pmcid = "PMC1234"
        record.save()

        record = models.Record()
        record.upload_id = job.id
        record.pmcid = "PMC9876"
        record.save()

        time.sleep(2)

        cb("cycle", state)

        time.sleep(2)

        r1 = models.Record.get_by_identifier("PMC1234", job.id, "pmcid").next()
        r2 = models.Record.get_by_identifier("PMC9876", job.id, "pmcid").next()

        assert r1.in_oag is False
        assert len(r1.provenance) == 1
        assert "SUCCESS" in r1.provenance[0][2]
        assert r1.oag_pmcid == "success"
        assert r1.licence_source == "epmc"
        assert r1.licence_type == "cc-by"
        assert r1.oag_complete is True

        assert r2.in_oag is False
        assert r2.oag_pmcid == "error"
        assert len(r2.provenance) == 1
        assert "ERROR" in r2.provenance[0][2]
        assert r2.oag_complete is True
Пример #4
0
    def test_11_oag_callback_01_cycle(self):
        cb = workflow.oag_callback_closure()
        assert cb is not None

        import types
        assert type(cb) == types.FunctionType

        job = models.SpreadsheetJob()
        job.save()

        state = oagclient.RequestState(["PMC1234", "PMC9876"])
        oag_response = {
            "results": [{
                "identifier": [{
                    "id": "PMC1234",
                    "type": "epmc",
                    "canonical": "PMC1234"
                }],
                "license": [{
                    "type": "cc-by",
                    "provenance": {
                        "description": "SUCCESS"
                    }
                }]
            }],
            "errors": [{
                "identifier": {
                    "id": "PMC9876",
                    "type": "epmc",
                    "canonical": "PMC9876"
                },
                "error": "ERROR"
            }]
        }
        state.record_result(oag_response)

        oagrlink = models.OAGRLink()
        oagrlink.spreadsheet_id = job.id
        oagrlink.oagrjob_id = state.id
        oagrlink.save()

        record = models.Record()
        record.upload_id = job.id
        record.pmcid = "PMC1234"
        record.save()

        record = models.Record()
        record.upload_id = job.id
        record.pmcid = "PMC9876"
        record.save()

        time.sleep(2)

        cb("cycle", state)

        time.sleep(2)

        r1 = models.Record.get_by_identifier("PMC1234", job.id, "pmcid").next()
        r2 = models.Record.get_by_identifier("PMC9876", job.id, "pmcid").next()

        assert r1.in_oag is False
        assert len(r1.provenance) == 1
        assert "SUCCESS" in r1.provenance[0][2]
        assert r1.oag_pmcid == "success"
        assert r1.licence_source == "epmc"
        assert r1.licence_type == "cc-by"
        assert r1.oag_complete is True

        assert r2.in_oag is False
        assert r2.oag_pmcid == "error"
        assert len(r2.provenance) == 1
        assert "ERROR" in r2.provenance[0][2]
        assert r2.oag_complete is True