def test_intermediate_results_job(self): """Test case for intermediate_results_job Retrieve the intermediate results stored by the Recording Oracle """ job = Job({ "gas_payer": GAS_PAYER, "gas_payer_priv": GAS_PAYER_PRIV }, manifest, FACTORY_ADDRESS) job.launch(REP_ORACLE_PUB_KEY) job.setup() job.store_intermediate_results({"results": True}, REP_ORACLE_PUB_KEY) query_string = [('address', job.job_contract.address), ('gasPayer', GAS_PAYER), ('gasPayerPrivate', GAS_PAYER_PRIV), ('repOraclePrivate', GAS_PAYER_PRIV.lstrip("0x"))] response = self.client.open('/job/intermediateResults', method='GET', query_string=query_string) self.assert200(response, 'Response body is: ' + response.data.decode('utf-8'))
def store_job_intermediate_results(body=None): # noqa: E501 """Store intermediate results to S3 for the given escrow Given an escrow address, a URL where the results can be found in the form of a JSON file, and a public key will upload to S3 these intermediate results and will emit an event on the escrow contract # noqa: E501 :param body: :type body: dict | bytes :rtype: BoolDataResponse """ if connexion.request.is_json: body = StoreJobIntermediateResultsBody.from_dict( connexion.request.get_json()) # noqa: E501 try: factory_addr = launcher(get_escrow(body.address), body.gas_payer) except Exception as e: return ErrorNotexistResponse(str(e)), 404 try: req = Request(body.results_url) req.add_header( "User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36" ) req.add_header("X-Requested-With", "XMLHttpRequest") data = urlopen(req).read() results = json.loads(data) except Exception as e: return ErrorParameterResponse(str(e), "results_url"), 400 try: job = Job(credentials={ "gas_payer": body.gas_payer, "gas_payer_priv": body.gas_payer_private, "rep_oracle_priv_key": bytes(body.gas_payer_private.lstrip("0x"), encoding="utf-8") }, factory_addr=factory_addr, escrow_addr=body.address) except Exception as e: return ErrorUnauthorizedResponse(str(e)), 401 try: return BoolDataResponse( job.store_intermediate_results( results, bytes(body.rep_oracle_pub, encoding="utf-8"))), 200 except Exception as e: return ErrorParameterResponse(str(e), "rep_oracle_pub_key"), 400