Red-DiscordBot/tests/cogs/test_economy.py
palmtree5 4923ffe98a [Economy] [WIP] rewrite (#781)
* [Economy][Bank] redo branch

* WIP

WIP

* Implement all current bank commands API calls

* Set dunder all and put into bot

* make core change to economy

* Add is_global method to bank

WIP

* Add extra bank API commands

* Update bank UI

Update some imports

Remove bank UI errors file

Typing thing

* Update bank get_global_accounts and touch up economy some more

Do some more economy updates

* Remove bank from bot

* Another passing test

FINALLY

* Fixy type things

Last fixes for now

Fix arg to toggle global

RJM

Invalid bid amount handler

cooldown msg

currency name fix

Fix fun bug

ANother bug

And payday limit

* PEP8 stuff

* Docstring change

* Fix this thing

* [Economy][Bank] redo branch

* [Economy][Bank] modify guild owner or bot owner check, add admin or bot owner check for global vs local bank

* [Economy] apply admin or bot owner check to [p]economyset

* Make some public things private

* [Economy] lots of refactoring for conditional permission checks and guild checks + supporting global economy

* And working stuff

* Fix Kowlin's bug

* Fix slot bugs
2017-08-09 17:23:41 -08:00

56 lines
1.5 KiB
Python

import pytest
@pytest.fixture()
def bank(config):
from core import Config
Config.get_conf = lambda *args, **kwargs: config
from core import bank
bank._register_defaults()
return bank
def test_bank_register(bank, ctx):
default_bal = bank.get_default_balance(ctx.guild)
assert default_bal == bank.get_account(ctx.author).balance
async def has_account(member, bank):
balance = bank.get_balance(member)
if balance == 0:
balance = 1
await bank.set_balance(member, balance)
@pytest.mark.asyncio
async def test_bank_transfer(bank, member_factory):
mbr1 = member_factory.get()
mbr2 = member_factory.get()
bal1 = bank.get_account(mbr1).balance
bal2 = bank.get_account(mbr2).balance
await bank.transfer_credits(mbr1, mbr2, 50)
newbal1 = bank.get_account(mbr1).balance
newbal2 = bank.get_account(mbr2).balance
assert bal1 - 50 == newbal1
assert bal2 + 50 == newbal2
@pytest.mark.asyncio
async def test_bank_set(bank, member_factory):
mbr = member_factory.get()
await bank.set_balance(mbr, 250)
acc = bank.get_account(mbr)
assert acc.balance == 250
@pytest.mark.asyncio
async def test_bank_can_spend(bank, member_factory):
mbr = member_factory.get()
canspend = bank.can_spend(mbr, 50)
assert canspend == (50 < bank.get_default_balance(mbr.guild))
await bank.set_balance(mbr, 200)
acc = bank.get_account(mbr)
canspendnow = bank.can_spend(mbr, 100)
assert canspendnow