Exemplo n.º 1
0
def test_precision():
    currency = Currency('USD')

    assert currency.precision == 2

    currency = Currency('JPY')

    assert currency.precision == 0
Exemplo n.º 2
0
def test_construction():
    currency = Currency('USD')

    assert currency.code == 'USD'
    assert currency.precision == 2
    assert currency.display_name() == 'US Dollar'
    assert currency.symbol() == '$'

    with pytest.raises(InvalidCurrencyFormat):
        Currency('dummy value')
Exemplo n.º 3
0
    def __new__(cls, amount, currency):
        self = super().__new__(cls, amount)

        if not isinstance(currency, Currency):
            currency = Currency(str(currency))

        self._currency = currency

        return self
Exemplo n.º 4
0
def test_currency_equality():
    """
    The currency 3 letter code is what makes something unique
    """
    curr1 = Currency(code="ABC",
                     numeric="1000",
                     name="ABC Currency",
                     symbol=u"$",
                     decimals=2,
                     countries=['My Country'])

    curr2 = Currency(code="ABC",
                     numeric="1001",
                     name="ABC Currency (Same numeric code)",
                     symbol=u"#",
                     decimals=1,
                     countries=['My Country 2'])

    assert curr1 == curr2
Exemplo n.º 5
0
def test_currency_inequality():
    """
    The currency 3 letter code is what makes something unique
    """
    curr1 = Currency(code="ABC",
                     numeric="1000",
                     name="My Currency",
                     symbol=u"$",
                     decimals=2,
                     countries=['My Country'])

    curr2 = Currency(code="BCD",
                     numeric="1000",
                     name="My Currency",
                     symbol=u"$",
                     decimals=2,
                     countries=['My Country'])

    assert curr1 != curr2
Exemplo n.º 6
0
def get_account_transactions(account_id):
    account_transactions = query_rows(
        """SELECT ts.name as source, at.amount AS amount, tt.name AS type, at.timestamp AS timestamp, u.username AS transaction_user FROM account_transactions AS at
                 JOIN transaction_types AS tt ON tt.transaction_type_id = at.transaction_type_id
                 JOIN transaction_source as ts ON ts.source_id = at.source_id
	             LEFT JOIN account_transaction_user as atu ON at.transaction_id = atu.transaction_id
                 LEFT JOIN users as u ON u.user_id = atu.user_id
	             WHERE account_id = ? ORDER BY timestamp DESC""", (account_id, ))
    for a in account_transactions:
        a["amount"] = Currency(a["amount"])
    return account_transactions
Exemplo n.º 7
0
def test_currency_equality_against_other():
    """
    The currency can't (currently) be compared to something else...
    """
    curr1 = Currency(code="ABC",
                     numeric="1000",
                     name="ABC Currency",
                     symbol=u"$",
                     decimals=2,
                     countries=['My Country'])

    assert curr1 != 1000
Exemplo n.º 8
0
def test_locale():
    currency = Currency('USD')

    assert currency.display_name() == 'US Dollar'
    assert currency.display_name('pt_PT') == 'dólar dos Estados Unidos'
    assert currency.display_name('de_DE') == 'US-Dollar'

    assert currency.symbol() == '$'
    assert currency.symbol('pt_PT') == 'US$'
    assert currency.symbol('de_DE') == '$'
Exemplo n.º 9
0
def test_currency_equality_against_string():
    """
    The currency can be compared to a string
    """
    curr1 = Currency(code="ABC",
                     numeric="1000",
                     name="ABC Currency",
                     symbol=u"$",
                     decimals=2,
                     countries=['My Country'])

    assert curr1 == 'ABC'
    assert curr1 != 'DEF'

    assert curr1 == u'ABC'
    assert curr1 != u'DEF'
Exemplo n.º 10
0
    def to(self, currency):
        """Returns the equivalent money object in another currency."""

        if currency == self._currency:
            return self

        if xrates.backend is None:
            raise ExchangeBackendNotSet()

        if not isinstance(currency, Currency):
            currency = Currency(str(currency))

        rate = xrates.backend.quotation(self._currency.code, currency.code)
        if rate is None:
            raise ExchangeRateNotFound(xrates.backend_name, self._currency, currency)

        return self.__class__(self * rate, currency)
Exemplo n.º 11
0
def make_withdrawl(request):
    amount = Currency(request.form_data["amount"])
    account_id = request.params["account_id"]
    user_id = request.session["user"]["user_id"]
    db = get_db_connection()
    c = db.cursor()
    c.execute(
        "INSERT INTO account_transactions (account_id, amount, transaction_type_id, timestamp, source_id) VALUES(?,?,2,CURRENT_TIMESTAMP,2)",
        (account_id, int(amount)))
    c.execute(
        "INSERT INTO account_transaction_user (transaction_id, user_id) VALUES(?,?)",
        (c.lastrowid, user_id))
    db.commit()
    request.session["feedback"] = [
        "withdrawl amount" + str(amount) + " for account " + account_id
    ]

    response = Redirect('/')
    return response
Exemplo n.º 12
0
# -*- encoding=utf-8
from money import Currency


class CurrencySource(dict):
    def get_default(self):
        return self['XXX']


CURRENCY = CurrencySource()
CURRENCY['XXX'] = Currency(code="XXX", numeric="999")
#
# Definitions of ISO 4217 Currencies
# Source: http://www.iso.org/iso/support/faqs/faqs_widely_used_standards/widely_used_standards_other/currency_codes/currency_codes_list-1.htm
#
CURRENCY['AED'] = Currency(code='AED',
                           prefix=u'د.إ',
                           numeric='784',
                           name='UAE Dirham',
                           countries=['UNITED ARAB EMIRATES'])
CURRENCY['AFN'] = Currency(code='AFN',
                           suffix=u'؋',
                           numeric='971',
                           name='Afghani',
                           countries=['AFGHANISTAN'])
CURRENCY['ALL'] = Currency(code='ALL',
                           prefix=u'L',
                           numeric='008',
                           name='Lek',
                           countries=['ALBANIA'])
CURRENCY['AMD'] = Currency(code='AMD',
def test_currency_equality():
    assert USD == Currency("United States dollar", "USD", "$")
def test_create_dinar():
    dinar = Currency("Bahraini dinar", "BHD", digits=3)
    assert dinar.name == "Bahraini dinar"
    assert dinar.code == "BHD"
    assert dinar.symbol is None
    assert dinar.digits == 3
def test_create_peso():
    peso = Currency("Mexican peso", "MXN")
    assert peso.name == "Mexican peso"
    assert peso.code == "MXN"
    assert peso.symbol is None
    assert peso.digits == 2
def test_create_dollar():
    dollar = Currency("United States dollar", "USD", "$")
    assert dollar.name == "United States dollar"
    assert dollar.code == "USD"
    assert dollar.symbol == "$"
    assert dollar.digits == 2
import pytest
from money import Money, Currency, DifferentCurrencyError

USD = Currency("United States dollar", "USD", "$")
BHD = Currency("Bahraini dinar", "BHD", digits=3)

# def test_cannot_convert():
#     rate = [.074, "USD", "EUR"]
#     with pytest.raises(ValueError):
#         convert(rates, .074, "USD", "SWE")    

def test_create_dollar():
    dollar = Currency("United States dollar", "USD", "$")
    assert dollar.name == "United States dollar"
    assert dollar.code == "USD"
    assert dollar.symbol == "$"
    assert dollar.digits == 2


def test_create_peso():
    peso = Currency("Mexican peso", "MXN")
    assert peso.name == "Mexican peso"
    assert peso.code == "MXN"
    assert peso.symbol is None
    assert peso.digits == 2


def test_create_dinar():
    dinar = Currency("Bahraini dinar", "BHD", digits=3)
    assert dinar.name == "Bahraini dinar"
    assert dinar.code == "BHD"
Exemplo n.º 18
0
def test_str():
    assert str(Currency('USD')) == 'USD'
    assert str(Currency('JPY')) == 'JPY'
Exemplo n.º 19
0
def test_eq():
    assert Currency('USD') == Currency('USD')
    assert Currency('USD') == 'USD'
Exemplo n.º 20
0
def test_ne():
    assert Currency('USD') != Currency('JPY')
    assert Currency('USD') != 'JPY'
Exemplo n.º 21
0
 def test_creation_internal_types(self):
     curr = Currency(code='AAA', name=u'My Currency')
     result = Money(Decimal('777'), currency=curr)
     self.assertEqual(result.amount, Decimal("777"))
     self.assertEqual(result.currency.code, 'AAA')
     self.assertEqual(result.currency.name, 'My Currency')
Exemplo n.º 22
0
 def parse_value(value):
     return Money.int_to_money(value.amount, Currency.get(value.currency))
Exemplo n.º 23
0
 def money(self):
     return Money.int_to_money(self.amount, Currency.get(self.currency))