示例#1
0
    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'}
示例#2
0
 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)
示例#3
0
 def test__create_hash_key(self):
     result = _create_hash_key(SCHEDULED_JOB_INPUT_DICT)
     assert result == 'rs1:user_test:third:2014-08-15:None'