Ejemplo n.º 1
0
def test_created_receipt_ok():
    now = timezone.now()
    responses.add(responses.POST,
                  ATOL_BASE_URL + '/getToken',
                  status=200,
                  json={
                      'code': 0,
                      'token': 'foobar'
                  })

    receipt = Receipt.objects.create(user_email='*****@*****.**',
                                     purchase_price=707.1)

    with mock.patch.object(AtolAPI, 'sell', wraps=AtolAPI.sell) as sell_mock:
        with mock.patch.object(atol_receive_receipt_report,
                               'apply_async') as task_mock:
            sell_mock.return_value = NewReceipt(
                uuid='5869a6d9-1540-4ebb-a2a2-f1d11501f213', data=None)
            atol_create_receipt(receipt.id)
            assert len(task_mock.mock_calls) == 1

    receipt.refresh_from_db()
    assert receipt.uuid == '5869a6d9-1540-4ebb-a2a2-f1d11501f213'
    assert receipt.status == ReceiptStatus.initiated
    assert receipt.initiated_at > now
Ejemplo n.º 2
0
def test_atol_create_receipt_fail(receipt_data, status):
    receipt = Receipt.objects.create(**receipt_data)

    with mock.patch.object(AtolAPI, 'sell') as sell_mock:
        atol_create_receipt(receipt.id)
        assert len(sell_mock.mock_calls) == 0

    receipt.refresh_from_db()
    assert receipt.status == status
Ejemplo n.º 3
0
def test_atol_create_receipt_stopped_on_unrecoverable_error():
    responses.add(responses.POST, ATOL_BASE_URL + '/getToken',
                  status=200, json={'code': 0, 'token': 'foobar'})
    responses.add(responses.POST, ATOL_BASE_URL + '/ATOL-ProdTest-1/sell',
                  status=400, json={'error': {'code': 3}})

    receipt = Receipt.objects.create(user_email='*****@*****.**', purchase_price=999)
    atol_create_receipt(receipt.id)
    receipt.refresh_from_db()
    assert receipt.status == 'failed'