Ejemplo n.º 1
0
    def test_substraction_saturating(self):
        usd1 = rockefeller.Money(amount=90, currency=rockefeller.Currency.USD)
        usd2 = rockefeller.Money(amount=100, currency=rockefeller.Currency.USD)

        assert rockefeller.Money(0,
                                 rockefeller.Currency.USD) == usd1.remove(usd2)
        assert rockefeller.Money(10,
                                 rockefeller.Currency.USD) == usd2.remove(usd1)
Ejemplo n.º 2
0
    def test_division_divmod(self):
        usd1 = rockefeller.Money(amount=25, currency=rockefeller.Currency.USD)
        usd2 = rockefeller.Money(amount=10, currency=rockefeller.Currency.USD)

        result = (rockefeller.Money(2, rockefeller.Currency.USD),
                  rockefeller.Money(5, rockefeller.Currency.USD))

        assert result == divmod(usd1, usd2)
Ejemplo n.º 3
0
    def test_exchange_indirectional(self):
        rockefeller.Money.indirection_currency = rockefeller.Currency.USD
        eur = rockefeller.Money(amount=100, currency=rockefeller.Currency.EUR)
        clp = rockefeller.Money(amount=60551,
                                currency=rockefeller.Currency.CLP)

        exchange = eur.exchange_to(rockefeller.Currency.CLP)
        assert exchange == clp
Ejemplo n.º 4
0
    def test_representation(self):
        usd = rockefeller.Money(amount=100, currency=rockefeller.Currency.USD)
        eur = rockefeller.Money(amount=78, currency=rockefeller.Currency.EUR)

        if PY3:
            assert '€78' == str(eur)
            assert '$100' == str(usd)
        else:
            assert u'€78' == unicode(eur)
            assert u'$100' == unicode(usd)
Ejemplo n.º 5
0
    def test_exponent_rounding(self):
        usd = rockefeller.Money(amount=100.235,
                                currency=rockefeller.Currency.USD)
        clp = rockefeller.Money(amount=60551.984324,
                                currency=rockefeller.Currency.CLP)

        assert decimal.Decimal('100.235') == usd.amount
        assert 100.24 == float(usd)

        assert decimal.Decimal('60551.984324') == clp.amount
        assert 60552 == float(clp)
Ejemplo n.º 6
0
    def test_equality(self):
        usd1 = rockefeller.Money(amount=100, currency=rockefeller.Currency.USD)
        usd2 = rockefeller.Money(amount=100, currency=rockefeller.Currency.USD)

        assert usd1 == usd2

        usd1 = rockefeller.Money(amount=100, currency=rockefeller.Currency.USD)
        usd2 = rockefeller.Money(amount=100, currency=rockefeller.Currency.EUR)

        assert usd1 != usd2

        usd1 = rockefeller.Money(amount=100, currency=rockefeller.Currency.USD)
        usd2 = rockefeller.Money(amount=78, currency=rockefeller.Currency.USD)

        assert usd1 != usd2
Ejemplo n.º 7
0
    def test_exchange_to_not_set(self):
        rockefeller.Money.indirection_currency = None
        usd = rockefeller.Money(amount=100, currency=rockefeller.Currency.EUR)

        with pytest.raises(rockefeller.exceptions.ExchangeError):
            usd.exchange_to(rockefeller.Currency.CLP)
Ejemplo n.º 8
0
    def test_as_float(self):
        usd = rockefeller.Money(amount=100, currency=rockefeller.Currency.USD)

        assert 100.00 == float(usd)
Ejemplo n.º 9
0
    def test_substraction(self):
        usd1 = rockefeller.Money(amount=90, currency=rockefeller.Currency.USD)
        usd2 = rockefeller.Money(amount=100, currency=rockefeller.Currency.USD)

        assert rockefeller.Money(-10, rockefeller.Currency.USD) == usd1 - usd2
Ejemplo n.º 10
0
    def test_exchange_to(self):
        usd = rockefeller.Money(amount=100, currency=rockefeller.Currency.USD)
        eur = rockefeller.Money(amount=78, currency=rockefeller.Currency.EUR)

        exchange = usd.exchange_to(rockefeller.Currency.EUR)
        assert exchange == eur
Ejemplo n.º 11
0
 def test_rounded_amount(self):
     usd = rockefeller.Money(amount=100.100,
                             currency=rockefeller.Currency.USD)
     assert '100.10' == str(usd.rounded_amount)
Ejemplo n.º 12
0
 def test_rounded_amount_exponent_0(self):
     clp = rockefeller.Money(amount=100.100,
                             currency=rockefeller.Currency.CLP)
     assert '100' == str(clp.rounded_amount)
Ejemplo n.º 13
0
    def test_multiplication(self):
        usd1 = rockefeller.Money(amount=10, currency=rockefeller.Currency.USD)
        usd2 = rockefeller.Money(amount=10, currency=rockefeller.Currency.USD)

        assert rockefeller.Money(100, rockefeller.Currency.USD) == usd1 * usd2
Ejemplo n.º 14
0
    def test_as_float_invalid_currency(self):
        usd = rockefeller.Money(amount=100, currency=None)

        with pytest.raises(rockefeller.MoneyError):
            float(usd)
Ejemplo n.º 15
0
    def test_addition(self):
        usd1 = rockefeller.Money(amount=100, currency=rockefeller.Currency.USD)
        usd2 = rockefeller.Money(amount=100, currency=rockefeller.Currency.USD)

        assert rockefeller.Money(200, rockefeller.Currency.USD) == usd1 + usd2
Ejemplo n.º 16
0
    def test_unsupported_division(self):
        usd1 = rockefeller.Money(amount=100, currency=rockefeller.Currency.USD)

        with pytest.raises(TypeError):
            usd1 / 100
Ejemplo n.º 17
0
    def test_division_floor(self):
        usd1 = rockefeller.Money(amount=10, currency=rockefeller.Currency.USD)
        usd2 = rockefeller.Money(amount=10, currency=rockefeller.Currency.USD)

        assert rockefeller.Money(1, rockefeller.Currency.USD) == usd1 // usd2