Esempio n. 1
0
 def test_subtract_fail(self):
     """
     An exception is thrown when subtracting money with different currencies
     """
     eur = Money(0, Currency('eur'))
     usd = Money(0, Currency('usd'))
     with self.assertRaises(ValueError):
         eur - usd
Esempio n. 2
0
    def test_return_currencies_not_equals(self):
        """
        It returns currency minor unit
        """
        currency1 = Currency('EUR')
        currency2 = Currency('USD')

        self.assertFalse(currency1.equals(currency2))
Esempio n. 3
0
    def test_not_equals(self):
        """
        It returns false when two money objects are not equal
        """
        money1 = Money(0, self.currency)
        money2 = Money(10, self.currency)

        self.assertFalse(money1 == money2)

        money1 = Money(0, Currency('EUR'))
        money2 = Money(0, Currency('USD'))

        self.assertFalse(money1 == money2)
Esempio n. 4
0
 def test_return_currency_minor_unit(self):
     code = 'EUR'
     """
     It returns currency minor unit
     """
     currency = Currency(code)
     self.assertEqual(2, currency.minor_unit)
Esempio n. 5
0
 def test_return_currency_iso_code(self):
     code = 'EUR'
     """
     It returns currency iso code
     """
     currency = Currency(code)
     self.assertEqual(978, currency.iso_code)
Esempio n. 6
0
 def test_return_currency_name(self):
     code = 'EUR'
     """
     It returns currency name
     """
     currency = Currency(code)
     self.assertEqual('Euro', currency.name)
Esempio n. 7
0
 def test_return_currency_code(self):
     code = 'EUR'
     """
     It returns currency alphabetic code
     """
     currency = Currency(code)
     self.assertEqual(code, currency.code)
Esempio n. 8
0
    def test_not_less__or_equal_than(self):
        """
        It returns false when money amount is not less or equal than given money object
        """
        money1 = Money(10, self.currency)
        money2 = Money(0, self.currency)

        self.assertFalse(money1 <= money2)

        """
        An exception is thrown when comparing money objects with different currencies
        """
        money1 = Money(0, Currency('EUR'))
        money2 = Money(0, Currency('USD'))

        with self.assertRaises(ValueError):
            self.assertFalse(money1 <= money2)
Esempio n. 9
0
        def deserialize(self, node, cstruct):
            r = super().deserialize(node, cstruct)
            if r in (schema.types.Null, None):
                return r
            try:
                currency = Currency(r[0])
            except ValueError:
                raise schema.Invalid(node, f'Invalid currency token in {r}',
                                     cstruct)

            try:
                rv = Money(r[1], currency)
            except:
                raise schema.Invalid(node, f'Invalid amount in {r}', cstruct)

            return rv
Esempio n. 10
0
 def __to_proposal(self, obj: dict) -> Proposal:
     return Proposal(
         flexibility_level=obj["flexibility"],
         price=Money(str(obj["price"]["value"]),
                     Currency(obj["price"]["currency"])),
     )
Esempio n. 11
0
 def setUp(self):
     """
     Prepare default currency object for test cases
     """
     self.currency = Currency('EUR')
Esempio n. 12
0
 def test_creates_currency(self):
     """
     It creates a new currency object
     """
     Currency('EUR')
Esempio n. 13
0
 def test_fails_to_create_currency(self):
     """
     An exception is thrown when currency is invalid
     """
     with self.assertRaises(ValueError):
         Currency('foo')