def test_get_taa_aml_returns_latest_taa_by_default(looper, nodeSetWithTaa,
                                                   sdk_pool_handle, sdk_wallet_client):
    reply = sdk_get_taa_aml(looper, sdk_pool_handle, sdk_wallet_client)[1]
    assert reply['op'] == REPLY

    result = reply['result']
    assert result['data'][AML_VERSION] == V2
    check_state_proof(result, '3:latest', taa_aml_value(result, V2, AML2, CONTEXT2))
def test_get_taa_aml_doesnt_return_taa_aml_when_it_didnt_exist(looper, nodeSetWithTaaAlwaysResponding,
                                                               sdk_pool_handle, sdk_wallet_client):
    reply = sdk_get_taa_aml(looper, sdk_pool_handle, sdk_wallet_client,
                            timestamp=TIMESTAMP_V1 - 3)[1]
    assert reply['op'] == REPLY

    result = reply['result']
    assert result['data'] is None
    check_state_proof(result, '3:latest', None)
def test_get_taa_aml_can_return_taa_aml_for_fresh_ts(looper, nodeSetWithTaaAlwaysResponding,
                                                     sdk_pool_handle, sdk_wallet_client):
    reply = sdk_get_taa_aml(looper, sdk_pool_handle, sdk_wallet_client,
                            timestamp=TIMESTAMP_V2 + 2)[1]
    assert reply['op'] == REPLY

    result = reply['result']
    assert result['data'][TXN_AUTHOR_AGREEMENT_VERSION] == V2
    check_state_proof(result, '3:latest', taa_aml_value(result, V2, AML2, CONTEXT2))
def test_get_taa_aml_can_return_taa_for_current_version(looper, nodeSetWithTaa,
                                                        sdk_pool_handle, sdk_wallet_client):
    reply = sdk_get_taa_aml(looper, sdk_pool_handle, sdk_wallet_client, version=V2)[1]

    assert reply['op'] == REPLY

    result = reply['result']
    assert result['data'][TXN_AUTHOR_AGREEMENT_VERSION] == V2
    check_state_proof(result, '3:v:{}'.format(V2), taa_aml_value(result, V2, AML2, CONTEXT2))
def test_get_taa_aml_doesnt_return_taa_for_nonexistent_version(looper, nodeSetWithTaa,
                                                               sdk_pool_handle, sdk_wallet_client):
    invalid_version = randomString(16)
    reply = sdk_get_taa_aml(looper, sdk_pool_handle, sdk_wallet_client,
                            version=invalid_version)[1]
    assert reply['op'] == REPLY

    result = reply['result']
    assert result['data'] is None
    check_state_proof(result, '3:v:{}'.format(invalid_version), None)
def test_get_taa_aml_can_return_taa_aml_for_old_ts(looper, nodeSetWithTaa,
                                                   sdk_pool_handle,
                                                   sdk_wallet_client):
    reply = sdk_get_taa_aml(looper,
                            sdk_pool_handle,
                            sdk_wallet_client,
                            timestamp=TIMESTAMP_V2 - 2)[1]
    assert reply['op'] == REPLY

    result = reply['result']
    assert result['data'][TXN_AUTHOR_AGREEMENT_VERSION] == V1
    check_state_proof(result, '3:latest',
                      taa_aml_value(result, V1, AML1, CONTEXT1))
def test_get_taa_aml_works_on_clear_state(looper, txnPoolNodeSet,
                                          sdk_pool_handle, sdk_wallet_client):
    reply = sdk_get_taa_aml(looper, sdk_pool_handle, sdk_wallet_client)[1]
    assert reply['op'] == REPLY
    assert reply['result']['data'] is None