[added] frappe.safe_eval

This commit is contained in:
Rushabh Mehta 2017-04-06 18:24:34 +05:30
parent 5e9d72d57b
commit 9365641777
4 changed files with 10 additions and 10 deletions

View File

@ -3,7 +3,7 @@
from __future__ import unicode_literals from __future__ import unicode_literals
import frappe import frappe
from frappe.utils import flt, comma_or, nowdate, getdate from frappe.utils import flt, comma_or
from frappe import _ from frappe import _
from frappe.model.document import Document from frappe.model.document import Document
@ -119,7 +119,7 @@ class StatusUpdater(Document):
self.status = s[0] self.status = s[0]
break break
elif s[1].startswith("eval:"): elif s[1].startswith("eval:"):
if eval(s[1][5:]): if frappe.safe_eval(s[1][5:]):
self.status = s[0] self.status = s[0]
break break
elif getattr(self, s[1])(): elif getattr(self, s[1])():

View File

@ -76,12 +76,12 @@ class SalarySlip(TransactionBase):
def eval_condition_and_formula(self, d, data): def eval_condition_and_formula(self, d, data):
try: try:
if d.condition: if d.condition:
if not eval(d.condition, {}, data): if not frappe.safe_eval(d.condition, None, data):
return None return None
amount = d.amount amount = d.amount
if d.amount_based_on_formula: if d.amount_based_on_formula:
if d.formula: if d.formula:
amount = eval(d.formula, None, data) amount = frappe.safe_eval(d.formula, None, data)
if amount: if amount:
data[d.abbr] = amount data[d.abbr] = amount

View File

@ -44,30 +44,30 @@ class TestStockEntry(unittest.TestCase):
make_stock_entry(item_code=item_code, target=warehouse, qty=1, basic_rate=10) make_stock_entry(item_code=item_code, target=warehouse, qty=1, basic_rate=10)
sle = get_sle(item_code = item_code, warehouse = warehouse)[0] sle = get_sle(item_code = item_code, warehouse = warehouse)[0]
self.assertEqual([[1, 10]], eval(sle.stock_queue)) self.assertEqual([[1, 10]], frappe.safe_eval(sle.stock_queue))
# negative qty # negative qty
make_stock_entry(item_code=item_code, source=warehouse, qty=2, basic_rate=10) make_stock_entry(item_code=item_code, source=warehouse, qty=2, basic_rate=10)
sle = get_sle(item_code = item_code, warehouse = warehouse)[0] sle = get_sle(item_code = item_code, warehouse = warehouse)[0]
self.assertEqual([[-1, 10]], eval(sle.stock_queue)) self.assertEqual([[-1, 10]], frappe.safe_eval(sle.stock_queue))
# further negative # further negative
make_stock_entry(item_code=item_code, source=warehouse, qty=1) make_stock_entry(item_code=item_code, source=warehouse, qty=1)
sle = get_sle(item_code = item_code, warehouse = warehouse)[0] sle = get_sle(item_code = item_code, warehouse = warehouse)[0]
self.assertEqual([[-2, 10]], eval(sle.stock_queue)) self.assertEqual([[-2, 10]], frappe.safe_eval(sle.stock_queue))
# move stock to positive # move stock to positive
make_stock_entry(item_code=item_code, target=warehouse, qty=3, basic_rate=20) make_stock_entry(item_code=item_code, target=warehouse, qty=3, basic_rate=20)
sle = get_sle(item_code = item_code, warehouse = warehouse)[0] sle = get_sle(item_code = item_code, warehouse = warehouse)[0]
self.assertEqual([[1, 20]], eval(sle.stock_queue)) self.assertEqual([[1, 20]], frappe.safe_eval(sle.stock_queue))
# incoming entry with diff rate # incoming entry with diff rate
make_stock_entry(item_code=item_code, target=warehouse, qty=1, basic_rate=30) make_stock_entry(item_code=item_code, target=warehouse, qty=1, basic_rate=30)
sle = get_sle(item_code = item_code, warehouse = warehouse)[0] sle = get_sle(item_code = item_code, warehouse = warehouse)[0]
self.assertEqual([[1, 20],[1, 30]], eval(sle.stock_queue)) self.assertEqual([[1, 20],[1, 30]], frappe.safe_eval(sle.stock_queue))
frappe.db.set_default("allow_negative_stock", 0) frappe.db.set_default("allow_negative_stock", 0)

View File

@ -44,7 +44,7 @@ $(document).ready(function() {
{% endblock %} {% endblock %}
{% block title %} {% block title %}
{{ _("Login") }} {{ _("ERPNext Demo") }}
{% endblock %} {% endblock %}
{% block page_content %} {% block page_content %}