seitime-frappe/frappe/tests/test_utils.py
tundebabzy ff4c86089c Make "Amount in words" spell three decimals (#3358)
* fixes frappe/erpnext#8895

* checks for non-numeric type

* makes words translatable
2017-06-13 12:09:35 +05:30

60 lines
No EOL
2.4 KiB
Python

# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# MIT License. See license.txt
from __future__ import unicode_literals
import unittest
from frappe.utils import evaluate_filters, money_in_words
class TestFilters(unittest.TestCase):
def test_simple_dict(self):
self.assertTrue(evaluate_filters({'doctype': 'User', 'status': 'Open'}, {'status': 'Open'}))
self.assertFalse(evaluate_filters({'doctype': 'User', 'status': 'Open'}, {'status': 'Closed'}))
def test_multiple_dict(self):
self.assertTrue(evaluate_filters({'doctype': 'User', 'status': 'Open', 'name': 'Test 1'},
{'status': 'Open', 'name':'Test 1'}))
self.assertFalse(evaluate_filters({'doctype': 'User', 'status': 'Open', 'name': 'Test 1'},
{'status': 'Closed', 'name': 'Test 1'}))
def test_list_filters(self):
self.assertTrue(evaluate_filters({'doctype': 'User', 'status': 'Open', 'name': 'Test 1'},
[{'status': 'Open'}, {'name':'Test 1'}]))
self.assertFalse(evaluate_filters({'doctype': 'User', 'status': 'Open', 'name': 'Test 1'},
[{'status': 'Open'}, {'name':'Test 2'}]))
def test_list_filters_as_list(self):
self.assertTrue(evaluate_filters({'doctype': 'User', 'status': 'Open', 'name': 'Test 1'},
[['status', '=', 'Open'], ['name', '=', 'Test 1']]))
self.assertFalse(evaluate_filters({'doctype': 'User', 'status': 'Open', 'name': 'Test 1'},
[['status', '=', 'Open'], ['name', '=', 'Test 2']]))
def test_lt_gt(self):
self.assertTrue(evaluate_filters({'doctype': 'User', 'status': 'Open', 'age': 20},
{'status': 'Open', 'age': ('>', 10)}))
self.assertFalse(evaluate_filters({'doctype': 'User', 'status': 'Open', 'age': 20},
{'status': 'Open', 'age': ('>', 30)}))
class TestMoney(unittest.TestCase):
def test_money_in_words(self):
nums_bhd = [
(5000, "BHD Five Thousand only."), (5000.0, "BHD Five Thousand only."),
(0.1, "One Hundred Fils only."), (0, "BHD Zero only."), ("Fail", "")
]
nums_ngn = [
(5000, "NGN Five Thousand only."), (5000.0, "NGN Five Thousand only."),
(0.1, "Ten Kobo only."), (0, "NGN Zero only."), ("Fail", "")
]
for num in nums_bhd:
self.assertEqual(
money_in_words(num[0], "BHD"), num[1], "{0} is not the same as {1}".
format(money_in_words(num[0], "BHD"), num[1])
)
for num in nums_ngn:
self.assertEqual(
money_in_words(num[0], "NGN"), num[1], "{0} is not the same as {1}".
format(money_in_words(num[0], "NGN"), num[1])
)