def test_put_delete_job_ok(self, scheduled_jobs, get_json_happy_dict, job_status): # post a new job job = get_json_happy_dict input_string = simplejson.dumps(job) et_scanner_queue = FakeSQS() result = self.post_job(scheduled_jobs, et_scanner_queue, input_string) required_args = list(ACTION_TO_REQUIRED_ARGS['put']) new_happy_dict = dict(zip(required_args, [get_json_happy_dict[k] for k in required_args])) new_happy_dict['et_status'] = job_status new_happy_dict['delete_requested'] = True # update job status hash_key = _create_hash_key(new_happy_dict) job = scheduled_jobs.get(hash_key=hash_key) # make state machine happy job.update(et_status=JOBS_ETL_STATUS_SCHEDULED) job.update(et_status=JOBS_ETL_STATUS_RUNNING) job.update(et_status=job_status) input_string = simplejson.dumps(new_happy_dict) result = put_job(scheduled_jobs, et_scanner_queue, input_string) assert 'put_accepted' in result assert result['put_accepted'] is True assert et_scanner_queue._published_msg == {'message': 'job put request'}
def test_create_insufficient_key(self, missing_key): test_dict = dict(SCHEDULED_JOB_INPUT_DICT) test_dict.pop(missing_key) with pytest.raises(PrimaryKeyError): _create_hash_key(test_dict)
def test__create_hash_key(self): result = _create_hash_key(SCHEDULED_JOB_INPUT_DICT) assert result == 'rs1:user_test:third:2014-08-15:None'