Skip to content
This repository has been archived by the owner on Jul 27, 2022. It is now read-only.

Commit

Permalink
make integration test worked
Browse files Browse the repository at this point in the history
  • Loading branch information
linfeng-crypto committed Dec 23, 2019
1 parent 63bf829 commit bdd3a19
Show file tree
Hide file tree
Showing 11 changed files with 255 additions and 89 deletions.
4 changes: 2 additions & 2 deletions integration-tests/bot/chainrpc.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,9 @@ def create_watch(self, public_key, name=DEFAULT_WALLET, type='staking'):

class Wallet:
def balance(self, name=DEFAULT_WALLET):
'''Get balance of wallet
'''Get balance details of wallet
:param name: Name of the wallet. [default: Default]'''
return int(call('wallet_balance', [name, get_passphrase()]))
return call('wallet_balance', [name, get_passphrase()])

def list(self):
return call('wallet_list')
Expand Down
15 changes: 13 additions & 2 deletions integration-tests/bot/tests/conftest.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import pytest
import time
from chainrpc import RPC


Expand All @@ -14,15 +15,25 @@ def addresses():
rpc = RPC()
rpc.wallet.sync()
addrs = TestAddresses(
rpc.address.list(type='staking')[1],
rpc.address.list(type='staking')[0],
rpc.address.list(type='transfer')[0],
rpc.address.list(type='transfer')[1],
)

state = rpc.staking.state(addrs.staking)
print("xxxxxxxxxx", state)
if int(state['unbonded']) > 0:
rpc.staking.withdraw_all_unbonded(addrs.staking,
addrs.transfer1)
rpc.wallet.sync()
assert rpc.wallet.balance() > 0
balance = rpc.wallet.balance()
assert int(balance["total"]) > 0
# wait for the pending amount become available
loop = 0
while int(balance["pending"]) != 0 and loop < 60:
rpc.wallet.sync()
balance = rpc.wallet.balance()
time.sleep(1)
loop += 1
assert int(balance["available"]) > 0
return addrs
3 changes: 2 additions & 1 deletion integration-tests/bot/tests/test_watch_only_wallet.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,5 @@ def test_watch_only_wallet(addresses):
time.sleep(1) # wait the block to pop up
rpc.wallet.sync()
rpc.wallet.sync(name)
assert rpc.wallet.balance(name) == amount
assert int(rpc.wallet.balance(name)["total"])== amount
assert int(rpc.wallet.balance(name)["available"])== amount
2 changes: 1 addition & 1 deletion integration-tests/client-rpc/test/core/setup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ const unbondAndWithdrawStakeFromClient = async (
"Error when retrieving Default wallet balance",
);
console.info(`[Info] Wallet balance: ${walletBalance}`);
if (new BigNumber(walletBalance).isGreaterThan("0")) {
if (new BigNumber(walletBalance.total).isGreaterThan("0")) {
console.info("[Init] Bonded funds already withdrew");
return;
}
Expand Down
31 changes: 20 additions & 11 deletions integration-tests/client-rpc/test/hdrestore-auto-sync.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -160,16 +160,22 @@ describe("Wallet Auto-sync", () => {
},
"Sender should have one Outgoing transaction",
);

const senderWalletBalanceAfterSend = await asyncMiddleman(
// after sync, the pending balance will become available
const senderWalletBalanceAfterSync = await asyncMiddleman(
zeroFeeRpcClient.request("wallet_balance", [senderWalletRequest]),
"Error when retrieving sender wallet balance after send",
);
expect(senderWalletBalanceAfterSend).to.eq(
new BigNumber(senderWalletBalanceBeforeSend)
.minus(transferAmount)
.toString(10),
"Sender balance should be deducted by transfer amount",
const returnAmount = new BigNumber(senderWalletBalanceBeforeSend.total)
.minus(transferAmount)
.toString(10);
const expectBalanceAfterSync = {
total: returnAmount,
available: returnAmount,
pending: "0",
}
expect(senderWalletBalanceAfterSync).to.deep.eq(
expectBalanceAfterSync,
"Sender balance total should be deducted by transfer amount",
);

const receiverWalletTransactionListAfterReceive = await asyncMiddleman(
Expand Down Expand Up @@ -197,10 +203,13 @@ describe("Wallet Auto-sync", () => {
zeroFeeRpcClient.request("wallet_balance", [receiverWalletRequest]),
"Error when retrieving receiver wallet balance after receive",
);
expect(receiverWalletBalanceAfterReceive).to.eq(
new BigNumber(receiverWalletBalanceBeforeReceive)
.plus(transferAmount)
.toString(10),
const expectBalanceAfterReciev = {
total: transferAmount,
available: transferAmount,
pending: "0",
}
expect(receiverWalletBalanceAfterReceive).to.deep.eq(
expectBalanceAfterReciev,
"Receiver balance should be increased by transfer amount",
);
});
Expand Down
69 changes: 53 additions & 16 deletions integration-tests/client-rpc/test/hdrestore-transaction.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,11 +116,31 @@ describe("Wallet transaction", () => {
"wallet_sendToAddress should return transaction id",
);

// before sync, the sender's balance is pending
const senderWalletBalanceBeforeSync = await asyncMiddleman(
zeroFeeRpcClient.request("wallet_balance", [senderWalletRequest]),
"Error when retrieving sender wallet balance before sync",
);
const returnAmount = new BigNumber(senderWalletBalanceBeforeSend.total)
.minus(transferAmount)
.toString(10);
const expectedBalanceBeforeSync = {
total: returnAmount,
pending: returnAmount,
available: "0",
};
expect(senderWalletBalanceBeforeSync).to.deep.eq(
expectedBalanceBeforeSync,
"Sender balance should be deducted by transfer amount before sync xxxxx",
);


await asyncMiddleman(
waitTxIdConfirmed(zeroFeeTendermintClient, txId),
"Error when waiting for transaction confirmation",
);

// sync
await asyncMiddleman(
syncWallet(zeroFeeRpcClient, senderWalletRequest),
"Error when synchronizing sender wallet",
Expand Down Expand Up @@ -152,15 +172,19 @@ describe("Wallet transaction", () => {
"Sender should have one Outgoing transaction",
);

const senderWalletBalanceAfterSend = await asyncMiddleman(
// after sync, the pending balance will become available
const senderWalletBalanceAfterSync = await asyncMiddleman(
zeroFeeRpcClient.request("wallet_balance", [senderWalletRequest]),
"Error when retrieving sender wallet balance after send",
);
expect(senderWalletBalanceAfterSend).to.eq(
new BigNumber(senderWalletBalanceBeforeSend)
.minus(transferAmount)
.toString(10),
"Sender balance should be deducted by transfer amount",
const expectedBalanceAfterSync = {
total: returnAmount,
pending: "0",
available: returnAmount,
};
expect(senderWalletBalanceAfterSync).to.deep.eq(
expectedBalanceAfterSync,
"Sender balance should be deducted by transfer amount after sync",
);

const receiverWalletTransactionListAfterReceive = await asyncMiddleman(
Expand Down Expand Up @@ -188,10 +212,17 @@ describe("Wallet transaction", () => {
zeroFeeRpcClient.request("wallet_balance", [receiverWalletRequest]),
"Error when retrieving receiver wallet balance after receive",
);
expect(receiverWalletBalanceAfterReceive).to.eq(
new BigNumber(receiverWalletBalanceBeforeReceive)
.plus(transferAmount)
.toString(10),
// after sync, the receive's balance will be increased
const expectedreceiverWalletBalanceAfterReceive = new BigNumber(receiverWalletBalanceBeforeReceive.total)
.plus(transferAmount)
.toString(10);
const expectedBalanceAfterReceive = {
total: transferAmount,
pending: "0",
available: transferAmount,
};
expect(receiverWalletBalanceAfterReceive).to.deep.eq(
expectedBalanceAfterReceive,
"Receiver balance should be increased by transfer amount",
);
});
Expand Down Expand Up @@ -304,8 +335,8 @@ describe("Wallet transaction", () => {
"Error when retrieving sender wallet balance after send",
);
expect(
new BigNumber(senderWalletBalanceAfterSend).isLessThan(
new BigNumber(senderWalletBalanceBeforeSend).minus(transferAmount),
new BigNumber(senderWalletBalanceAfterSend.total).isLessThan(
new BigNumber(senderWalletBalanceBeforeSend.available).minus(transferAmount),
),
).to.eq(
true,
Expand Down Expand Up @@ -337,10 +368,16 @@ describe("Wallet transaction", () => {
withFeeRpcClient.request("wallet_balance", [receiverWalletRequest]),
"Error when retrieving receiver wallet balance after receive",
);
expect(receiverWalletBalanceAfterReceive).to.eq(
new BigNumber(receiverWalletBalanceBeforeReceive)
.plus(transferAmount)
.toString(10),
const receiverTotalAmount = new BigNumber(receiverWalletBalanceBeforeReceive.total)
.plus(transferAmount)
.toString(10);
const expectedBalanceAfterReceive = {
total: receiverTotalAmount,
available: receiverTotalAmount,
pending: "0",
};
expect(receiverWalletBalanceAfterReceive).to.deep.eq(
expectedBalanceAfterReceive,
"Receiver balance should be increased by the exact transfer amount",
);
});
Expand Down
31 changes: 22 additions & 9 deletions integration-tests/client-rpc/test/hdwallet-auto-sync.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -160,14 +160,21 @@ describe("Wallet Auto-sync", () => {
"Sender should have one Outgoing transaction",
);

const senderWalletBalanceAfterSend = await asyncMiddleman(
const senderWalletBalanceAfterSync = await asyncMiddleman(
zeroFeeRpcClient.request("wallet_balance", [senderWalletRequest]),
"Error when retrieving sender wallet balance after send",
);
expect(senderWalletBalanceAfterSend).to.eq(
new BigNumber(senderWalletBalanceBeforeSend)
.minus(transferAmount)
.toString(10),
// after sync, the sender's pending balance will become available
const returnAmount = new BigNumber(senderWalletBalanceBeforeSend.total)
.minus(transferAmount)
.toString(10);
const expectedBalanceAfterSync = {
total: returnAmount,
pending: "0",
available: returnAmount,
};
expect(senderWalletBalanceAfterSync).to.deep.eq(
expectedBalanceAfterSync,
"Sender balance should be deducted by transfer amount",
);

Expand Down Expand Up @@ -196,10 +203,16 @@ describe("Wallet Auto-sync", () => {
zeroFeeRpcClient.request("wallet_balance", [receiverWalletRequest]),
"Error when retrieving receiver wallet balance after receive",
);
expect(receiverWalletBalanceAfterReceive).to.eq(
new BigNumber(receiverWalletBalanceBeforeReceive)
.plus(transferAmount)
.toString(10),
const receiverTotalAmount = new BigNumber(receiverWalletBalanceBeforeReceive.total)
.plus(transferAmount)
.toString(10);
const expectedBalanceAfterReceive = {
total: receiverTotalAmount,
available: receiverTotalAmount,
pending: "0",
};
expect(receiverWalletBalanceAfterReceive).to.deep.eq(
expectedBalanceAfterReceive,
"Receiver balance should be increased by transfer amount",
);
});
Expand Down
67 changes: 50 additions & 17 deletions integration-tests/client-rpc/test/hdwallet-transaction.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,23 @@ describe("Wallet transaction", () => {
64,
"wallet_sendToAddress should return transaction id",
);
// after send and before sync, the sender's return amount will be pending
const returnAmount = new BigNumber(senderWalletBalanceBeforeSend.total)
.minus(transferAmount)
.toString(10);
const expectedBalanceBeforeSync = {
total: returnAmount,
pending: returnAmount,
available: "0",
};
const senderWalletBalanceBeforeSync = await asyncMiddleman(
zeroFeeRpcClient.request("wallet_balance", [senderWalletRequest]),
"Error when retrieving sender wallet balance after send",
);
expect(senderWalletBalanceBeforeSync).to.deep.eq(
expectedBalanceBeforeSync,
"Sender balance should be deducted by transfer amount",
);

await asyncMiddleman(
waitTxIdConfirmed(zeroFeeTendermintClient, txId),
Expand Down Expand Up @@ -151,16 +168,20 @@ describe("Wallet transaction", () => {
"Sender should have one Outgoing transaction",
);

const senderWalletBalanceAfterSend = await asyncMiddleman(
const senderWalletBalanceAfterSync = await asyncMiddleman(
zeroFeeRpcClient.request("wallet_balance", [senderWalletRequest]),
"Error when retrieving sender wallet balance after send",
);
expect(senderWalletBalanceAfterSend).to.eq(
new BigNumber(senderWalletBalanceBeforeSend)
.minus(transferAmount)
.toString(10),
"Sender balance should be deducted by transfer amount",
);
// after sync, the pending balance will become available
const expectedBalanceAfterSync = {
total: returnAmount,
pending: "0",
available: returnAmount,
};
expect(senderWalletBalanceAfterSync).to.deep.eq(
expectedBalanceAfterSync,
"Sender balance should be deducted by transfer amount",
);

const receiverWalletTransactionListAfterReceive = await asyncMiddleman(
zeroFeeRpcClient.request("wallet_transactions", [receiverWalletRequest, 0, TRANSACTION_HISTORY_LIMIT, true]),
Expand All @@ -187,10 +208,16 @@ describe("Wallet transaction", () => {
zeroFeeRpcClient.request("wallet_balance", [receiverWalletRequest]),
"Error when retrieving receiver wallet balance after receive",
);
expect(receiverWalletBalanceAfterReceive).to.eq(
new BigNumber(receiverWalletBalanceBeforeReceive)
.plus(transferAmount)
.toString(10),
const receiverTotalAmount = new BigNumber(receiverWalletBalanceBeforeReceive.total)
.plus(transferAmount)
.toString(10);
const expectedBalanceAfterReceive = {
total: receiverTotalAmount,
available: receiverTotalAmount,
pending: "0",
}
expect(receiverWalletBalanceAfterReceive).to.deep.eq(
expectedBalanceAfterReceive,
"Receiver balance should be increased by transfer amount",
);
});
Expand Down Expand Up @@ -300,8 +327,8 @@ describe("Wallet transaction", () => {
"Error when retrieving sender wallet balance after send",
);
expect(
new BigNumber(senderWalletBalanceAfterSend).isLessThan(
new BigNumber(senderWalletBalanceBeforeSend).minus(transferAmount),
new BigNumber(senderWalletBalanceAfterSend.total).isLessThan(
new BigNumber(senderWalletBalanceBeforeSend.available).minus(transferAmount),
),
).to.eq(
true,
Expand Down Expand Up @@ -333,10 +360,16 @@ describe("Wallet transaction", () => {
withFeeRpcClient.request("wallet_balance", [receiverWalletRequest]),
"Error when retrieving receiver wallet balance after receive",
);
expect(receiverWalletBalanceAfterReceive).to.eq(
new BigNumber(receiverWalletBalanceBeforeReceive)
.plus(transferAmount)
.toString(10),
const receiverTotalAmount = new BigNumber(receiverWalletBalanceBeforeReceive.total)
.plus(transferAmount)
.toString(10);
const expectedBalanceAfterReceive = {
total: receiverTotalAmount,
available: receiverTotalAmount,
pending: "0",
};
expect(receiverWalletBalanceAfterReceive).to.deep.eq(
expectedBalanceAfterReceive,
"Receiver balance should be increased by the exact transfer amount",
);
});
Expand Down
Loading

0 comments on commit bdd3a19

Please sign in to comment.