mirror of
https://github.com/aljazceru/nutshell.git
synced 2025-12-20 10:34:20 +01:00
Testing/click (#99)
* annotate context * remove whitespace * test CLI * make format * github action with submodule checkout * maybe now * vllt ja nu * und no? * back to normal mint running * githuuuuub * COME OOOON! * SO. CLOSE. * make format * new test * fix it * make format * receive v1 token test
This commit is contained in:
117
tests/test_cli.py
Normal file
117
tests/test_cli.py
Normal file
@@ -0,0 +1,117 @@
|
||||
import asyncio
|
||||
|
||||
import click
|
||||
import pytest
|
||||
from click.testing import CliRunner
|
||||
|
||||
from cashu.core.migrations import migrate_databases
|
||||
from cashu.core.settings import VERSION
|
||||
from cashu.wallet import migrations
|
||||
from cashu.wallet.cli import cli
|
||||
from cashu.wallet.wallet import Wallet
|
||||
from tests.conftest import SERVER_ENDPOINT, mint
|
||||
|
||||
cli_prefix = ["--wallet", "test_wallet", "--host", SERVER_ENDPOINT]
|
||||
|
||||
|
||||
async def init_wallet():
|
||||
wallet = Wallet(SERVER_ENDPOINT, "data/test_wallet", "wallet")
|
||||
await migrate_databases(wallet.db, migrations)
|
||||
await wallet.load_proofs()
|
||||
return wallet
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
def test_info():
|
||||
runner = CliRunner()
|
||||
result = runner.invoke(
|
||||
cli,
|
||||
[*cli_prefix, "info"],
|
||||
)
|
||||
print("INFO")
|
||||
print(result.output)
|
||||
result.output.startswith(f"Version: {VERSION}")
|
||||
assert result.exit_code == 0
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
def test_balance():
|
||||
runner = CliRunner()
|
||||
result = runner.invoke(
|
||||
cli,
|
||||
[*cli_prefix, "balance"],
|
||||
)
|
||||
print("------ BALANCE ------")
|
||||
print(result.output)
|
||||
wallet = asyncio.run(init_wallet())
|
||||
assert f"Balance: {wallet.available_balance} sat" in result.output
|
||||
assert result.exit_code == 0
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
def test_wallets():
|
||||
runner = CliRunner()
|
||||
result = runner.invoke(
|
||||
cli,
|
||||
[*cli_prefix, "wallets"],
|
||||
)
|
||||
print("WALLETS")
|
||||
# on github this is empty
|
||||
if len(result.output):
|
||||
assert "test_wallet" in result.output
|
||||
assert result.exit_code == 0
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
def test_invoice():
|
||||
runner = CliRunner()
|
||||
result = runner.invoke(
|
||||
cli,
|
||||
[*cli_prefix, "invoice", "1000"],
|
||||
)
|
||||
print("INVOICE")
|
||||
print(result.output)
|
||||
wallet = asyncio.run(init_wallet())
|
||||
assert f"Balance: {wallet.available_balance} sat" in result.output
|
||||
assert result.exit_code == 0
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
def test_send(mint):
|
||||
runner = CliRunner()
|
||||
result = runner.invoke(
|
||||
cli,
|
||||
[*cli_prefix, "send", "10"],
|
||||
)
|
||||
print("SEND")
|
||||
print(result.output)
|
||||
|
||||
token = [l for l in result.output.split("\n") if l.startswith("ey")][0]
|
||||
print("TOKEN")
|
||||
print(token)
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
def test_receive_tokenv2(mint):
|
||||
runner = CliRunner()
|
||||
token = "eyJwcm9vZnMiOiBbeyJpZCI6ICJEU0FsOW52dnlmdmEiLCAiYW1vdW50IjogMiwgInNlY3JldCI6ICJ3MEs4dE9OcFJOdVFvUzQ1Y2g1NkJ3IiwgIkMiOiAiMDI3NzcxODY4NWQ0MDgxNmQ0MTdmZGE1NWUzN2YxOTFkN2E5ODA0N2QyYWE2YzFlNDRhMWZjNTM1ZmViZDdjZDQ5In0sIHsiaWQiOiAiRFNBbDludnZ5ZnZhIiwgImFtb3VudCI6IDgsICJzZWNyZXQiOiAiX2J4cDVHeG1JQUVaRFB5Sm5qaFUxdyIsICJDIjogIjAzZTY2M2UzOWYyNTZlZTAzOTBiNGFiMThkZDA2OTc0NjRjZjIzYTM4OTc1MDlmZDFlYzQ1MzMxMTRlMTcwMDQ2NCJ9XSwgIm1pbnRzIjogW3sidXJsIjogImh0dHA6Ly9sb2NhbGhvc3Q6MzMzNyIsICJpZHMiOiBbIkRTQWw5bnZ2eWZ2YSJdfV19"
|
||||
result = runner.invoke(
|
||||
cli,
|
||||
[*cli_prefix, "receive", token],
|
||||
)
|
||||
|
||||
print("RECEIVE")
|
||||
print(result.output)
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
def test_receive_tokenv1(mint):
|
||||
runner = CliRunner()
|
||||
token = "3siaWQiOiAiRFNBbDludnZ5ZnZhIiwgImFtb3VudCI6IDIsICJzZWNyZXQiOiAiX3VOV1ZNeDRhQndieWszRDZoLWREZyIsICJDIjogIjAyMmEzMzRmZTIzYTA1OTJhZmM3OTk3OWQyZDJmMmUwOTgxMGNkZTRlNDY5ZGYwYzZhMGE4ZDg0ZmY1MmIxOTZhNyJ9LCB7ImlkIjogIkRTQWw5bnZ2eWZ2YSIsICJhbW91bnQiOiA4LCAic2VjcmV0IjogIk9VUUxnRE90WXhHOXJUMzZKdHFwbWciLCAiQyI6ICIwMzVmMGM2NTNhNTEzMGY4ZmQwNjY5NDg5YzEwMDY3N2Q5NGU0MGFlZjhkYWE0OWZiZDIyZTgzZjhjNThkZjczMTUifV0"
|
||||
result = runner.invoke(
|
||||
cli,
|
||||
[*cli_prefix, "receive", token],
|
||||
)
|
||||
|
||||
print("RECEIVE")
|
||||
print(result.output)
|
||||
Reference in New Issue
Block a user