def test_command_donnot_change_status_when_already_refunded(): request_id = 'testingId' task_info = dict(request_id=request_id, op_info=dict(status='failed')) save_task_info(task_info) runner = CliRunner() result = runner.invoke(change_status, [request_id, 'failed']) assert result.output == 'transaction was already refunded\n'
def test_transaction_id_does_not_exist(): request_id = 'request-id' task_info = dict(request_id=request_id, ) save_task_info(task_info) runner = CliRunner() result = runner.invoke(change_status, ['other-id', 'success']) assert result.output == 'transaction id other-id does not exists\n'
def test_save_task_info(): task_id = str(uuid4()) task_info = dict( task_id=task_id, task_name='arcusd.tasks.mytask', ) tasks.save_task_info(task_info) db_task_info = tasks.get_task_info({'task_id': task_id}) assert db_task_info['task_id'] == task_id
def test_command_change_status_already_exists(mock_pay_bill, mock_send_op_result): request_id = 'testingId2' task_info = dict(request_id=request_id, op_info=dict(status='success')) save_task_info(task_info) runner = CliRunner() result = runner.invoke(change_status, [request_id, 'failed']) assert result.exit_code == 0 transaction = get_task_info(dict(request_id=request_id)) assert transaction['op_info']['status'] == 'failed'
def test_refund_payment_handles_error(mock_pay_bill, mock_send_op_result): request_id = 'testid' task_info = dict(request_id=request_id, ) save_task_info(task_info) runner = CliRunner() with pytest.raises(Exception): pay_bill(request_id, 'internet_telmex', '2424240024') result = runner.invoke(change_status, [request_id, 'failed']) get_task_info(dict(request_id=request_id)) assert result.output == 'connection error try again\n'
def task_before_run(task_id, task, *args, **kwargs): request_id = task.request.kwargs.get('request_id', task_id) task_info = dict( task_id=task_id, task_sender=task.request.origin, task_args=task.request.args, task_kwargs=task.request.kwargs, task_retries=task.request.retries, task_start=datetime.utcnow(), request_id=request_id, ) save_task_info(task_info)
def test_set_status_failed_creates_op_info(mock_pay_bill, mock_send_op_result): request_id = 'request-id2' task_info = dict(request_id=request_id, ) save_task_info(task_info) runner = CliRunner() with pytest.raises(Exception): pay_bill(request_id, 'internet_telmex', '2424240024') result = runner.invoke(change_status, [request_id, 'failed']) assert result.exit_code == 0 transaction = get_task_info(dict(request_id=request_id)) assert transaction['op_info'] is not None assert transaction['op_info']['status'] == 'failed' assert mock_send_op_result.called
def test_success_and_create_op_info(mock_pay_bill, mock_send_op_result): request_id = 'idtest' task_info = dict(request_id=request_id, ) save_task_info(task_info) runner = CliRunner() with pytest.raises(Exception): pay_bill(request_id, 'internet_telmex', '2424240024') result = runner.invoke(change_status, [request_id, 'success'], input='arcus-id\n100') assert result.exit_code == 0 transaction = get_task_info(dict(request_id=request_id)) assert transaction['op_info']['operation']['amount'] == 100 assert transaction['op_info']['operation']['id'] == 'arcus-id'
def test_update_task_info(): task_id = str(uuid4()) task_info1 = dict( task_id=task_id, task_name='arcusd.tasks.mytask', ) tasks.save_task_info(task_info1) task_info2 = dict(task_result='task_result', op_info={ 'prop1': 123234, 'prop2': 'abcdf' }) tasks.update_task_info({'task_id': task_id}, task_info2) db_task_info = tasks.get_task_info({'task_id': task_id}) assert db_task_info['task_id'] == task_info1['task_id'] assert db_task_info['task_name'] == task_info1['task_name'] assert db_task_info['task_result'] == task_info2['task_result'] assert db_task_info['op_info']['prop1'] == task_info2['op_info']['prop1'] assert db_task_info['op_info']['prop2'] == task_info2['op_info']['prop2']