fixes to test cases
This commit is contained in:
parent
0dc79f4de0
commit
c399709789
@ -55,7 +55,7 @@ class TestPurchaseInvoice(unittest.TestCase):
|
||||
order by account asc""", pi.name, as_dict=1)
|
||||
self.assertTrue(gl_entries)
|
||||
|
||||
expected_values = sorted([
|
||||
expected_values = dict((d[0], d) for d in [
|
||||
["_Test Payable - _TC", 0, 720],
|
||||
["Stock Received But Not Billed - _TC", 750.0, 0],
|
||||
["Expenses Included In Valuation - _TC", 0.0, 250.0],
|
||||
@ -64,9 +64,9 @@ class TestPurchaseInvoice(unittest.TestCase):
|
||||
])
|
||||
|
||||
for i, gle in enumerate(gl_entries):
|
||||
self.assertEquals(expected_values[i][0], gle.account)
|
||||
self.assertEquals(expected_values[i][1], gle.debit)
|
||||
self.assertEquals(expected_values[i][2], gle.credit)
|
||||
self.assertEquals(expected_values[gle.account][0], gle.account)
|
||||
self.assertEquals(expected_values[gle.account][1], gle.debit)
|
||||
self.assertEquals(expected_values[gle.account][2], gle.credit)
|
||||
|
||||
set_perpetual_inventory(0)
|
||||
|
||||
@ -88,7 +88,7 @@ class TestPurchaseInvoice(unittest.TestCase):
|
||||
order by account asc""", pi.name, as_dict=1)
|
||||
self.assertTrue(gl_entries)
|
||||
|
||||
expected_values = sorted([
|
||||
expected_values = dict((d[0], d) for d in [
|
||||
["_Test Payable - _TC", 0, 720],
|
||||
["Stock Received But Not Billed - _TC", 500.0, 0],
|
||||
["_Test Account Shipping Charges - _TC", 100.0, 0],
|
||||
@ -96,9 +96,9 @@ class TestPurchaseInvoice(unittest.TestCase):
|
||||
])
|
||||
|
||||
for i, gle in enumerate(gl_entries):
|
||||
self.assertEquals(expected_values[i][0], gle.account)
|
||||
self.assertEquals(expected_values[i][1], gle.debit)
|
||||
self.assertEquals(expected_values[i][2], gle.credit)
|
||||
self.assertEquals(expected_values[gle.account][0], gle.account)
|
||||
self.assertEquals(expected_values[gle.account][1], gle.debit)
|
||||
self.assertEquals(expected_values[gle.account][2], gle.credit)
|
||||
|
||||
set_perpetual_inventory(0)
|
||||
|
||||
|
@ -4,6 +4,7 @@ from __future__ import unicode_literals
|
||||
|
||||
import frappe
|
||||
import unittest, copy
|
||||
import time
|
||||
from erpnext.accounts.utils import get_stock_and_account_difference
|
||||
from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import set_perpetual_inventory
|
||||
from erpnext.projects.doctype.time_log_batch.test_time_log_batch import *
|
||||
@ -221,7 +222,7 @@ class TestSalesInvoice(unittest.TestCase):
|
||||
|
||||
self.assertTrue(gl_entries)
|
||||
|
||||
expected_values = sorted([
|
||||
expected_values = dict((d[0], d) for d in [
|
||||
[si.debit_to, 1500, 0.0],
|
||||
[test_records[3]["items"][0]["income_account"], 0.0, 1163.45],
|
||||
[test_records[3]["taxes"][0]["account_head"], 0.0, 130.31],
|
||||
@ -235,10 +236,10 @@ class TestSalesInvoice(unittest.TestCase):
|
||||
["_Test Account Service Tax - _TC", 16.88, 0.0],
|
||||
])
|
||||
|
||||
for i, gle in enumerate(gl_entries):
|
||||
self.assertEquals(expected_values[i][0], gle.account)
|
||||
self.assertEquals(expected_values[i][1], gle.debit)
|
||||
self.assertEquals(expected_values[i][2], gle.credit)
|
||||
for gle in gl_entries:
|
||||
self.assertEquals(expected_values[gle.account][0], gle.account)
|
||||
self.assertEquals(expected_values[gle.account][1], gle.debit)
|
||||
self.assertEquals(expected_values[gle.account][2], gle.credit)
|
||||
|
||||
# cancel
|
||||
si.cancel()
|
||||
@ -439,7 +440,7 @@ class TestSalesInvoice(unittest.TestCase):
|
||||
|
||||
self.assertTrue(gl_entries)
|
||||
|
||||
expected_values = sorted([
|
||||
expected_values = dict((d[0], d) for d in [
|
||||
[si.debit_to, 630.0, 0.0],
|
||||
[test_records[1]["items"][0]["income_account"], 0.0, 500.0],
|
||||
[test_records[1]["taxes"][0]["account_head"], 0.0, 80.0],
|
||||
@ -447,9 +448,9 @@ class TestSalesInvoice(unittest.TestCase):
|
||||
])
|
||||
|
||||
for i, gle in enumerate(gl_entries):
|
||||
self.assertEquals(expected_values[i][0], gle.account)
|
||||
self.assertEquals(expected_values[i][1], gle.debit)
|
||||
self.assertEquals(expected_values[i][2], gle.credit)
|
||||
self.assertEquals(expected_values[gle.account][0], gle.account)
|
||||
self.assertEquals(expected_values[gle.account][1], gle.debit)
|
||||
self.assertEquals(expected_values[gle.account][2], gle.credit)
|
||||
|
||||
# cancel
|
||||
si.cancel()
|
||||
@ -502,7 +503,8 @@ class TestSalesInvoice(unittest.TestCase):
|
||||
[si.debit_to, 0.0, 600.0],
|
||||
["_Test Account Bank Account - _TC", 600.0, 0.0]
|
||||
])
|
||||
for i, gle in enumerate(gl_entries):
|
||||
|
||||
for i, gle in enumerate(sorted(gl_entries, key=lambda gle: gle.account)):
|
||||
self.assertEquals(expected_gl_entries[i][0], gle.account)
|
||||
self.assertEquals(expected_gl_entries[i][1], gle.debit)
|
||||
self.assertEquals(expected_gl_entries[i][2], gle.credit)
|
||||
@ -574,16 +576,16 @@ class TestSalesInvoice(unittest.TestCase):
|
||||
order by account asc, debit asc""", si.name, as_dict=1)
|
||||
self.assertTrue(gl_entries)
|
||||
|
||||
expected_gl_entries = sorted([
|
||||
expected_gl_entries = dict((d[0], d) for d in [
|
||||
[si.debit_to, 630.0, 0.0],
|
||||
[si_doc.get("items")[0]["income_account"], 0.0, 500.0],
|
||||
[si_doc.get("taxes")[0]["account_head"], 0.0, 80.0],
|
||||
[si_doc.get("taxes")[1]["account_head"], 0.0, 50.0],
|
||||
])
|
||||
for i, gle in enumerate(gl_entries):
|
||||
self.assertEquals(expected_gl_entries[i][0], gle.account)
|
||||
self.assertEquals(expected_gl_entries[i][1], gle.debit)
|
||||
self.assertEquals(expected_gl_entries[i][2], gle.credit)
|
||||
self.assertEquals(expected_gl_entries[gle.account][0], gle.account)
|
||||
self.assertEquals(expected_gl_entries[gle.account][1], gle.debit)
|
||||
self.assertEquals(expected_gl_entries[gle.account][2], gle.credit)
|
||||
|
||||
si.cancel()
|
||||
gle = frappe.db.sql("""select * from `tabGL Entry`
|
||||
@ -605,16 +607,16 @@ class TestSalesInvoice(unittest.TestCase):
|
||||
order by account asc""", si.name, as_dict=1)
|
||||
self.assertTrue(gl_entries)
|
||||
|
||||
expected_values = sorted([
|
||||
expected_values = dict((d[0], d) for d in [
|
||||
[si.debit_to, 630.0, 0.0],
|
||||
[test_records[1]["items"][0]["income_account"], 0.0, 500.0],
|
||||
[test_records[1]["taxes"][0]["account_head"], 0.0, 80.0],
|
||||
[test_records[1]["taxes"][1]["account_head"], 0.0, 50.0],
|
||||
])
|
||||
for i, gle in enumerate(gl_entries):
|
||||
self.assertEquals(expected_values[i][0], gle.account)
|
||||
self.assertEquals(expected_values[i][1], gle.debit)
|
||||
self.assertEquals(expected_values[i][2], gle.credit)
|
||||
self.assertEquals(expected_values[gle.account][0], gle.account)
|
||||
self.assertEquals(expected_values[gle.account][1], gle.debit)
|
||||
self.assertEquals(expected_values[gle.account][2], gle.credit)
|
||||
|
||||
set_perpetual_inventory(0)
|
||||
|
||||
@ -630,16 +632,16 @@ class TestSalesInvoice(unittest.TestCase):
|
||||
order by account asc""", si.name, as_dict=1)
|
||||
self.assertTrue(gl_entries)
|
||||
|
||||
expected_values = sorted([
|
||||
expected_values = dict((d[0], d) for d in [
|
||||
[si.debit_to, 630.0, 0.0],
|
||||
[test_records[1]["items"][0]["income_account"], 0.0, 500.0],
|
||||
[test_records[1]["taxes"][0]["account_head"], 0.0, 80.0],
|
||||
[test_records[1]["taxes"][1]["account_head"], 0.0, 50.0],
|
||||
])
|
||||
for i, gle in enumerate(gl_entries):
|
||||
self.assertEquals(expected_values[i][0], gle.account)
|
||||
self.assertEquals(expected_values[i][1], gle.debit)
|
||||
self.assertEquals(expected_values[i][2], gle.credit)
|
||||
self.assertEquals(expected_values[gle.account][0], gle.account)
|
||||
self.assertEquals(expected_values[gle.account][1], gle.debit)
|
||||
self.assertEquals(expected_values[gle.account][2], gle.credit)
|
||||
|
||||
set_perpetual_inventory(0)
|
||||
|
||||
@ -733,7 +735,7 @@ class TestSalesInvoice(unittest.TestCase):
|
||||
"delivery_document_no"))
|
||||
|
||||
def test_serialize_status(self):
|
||||
from erpnext.stock.doctype.serial_no.serial_no import SerialNoStatusError, get_serial_nos
|
||||
from erpnext.stock.doctype.serial_no.serial_no import SerialNoStatusError, get_serial_nos, SerialNoDuplicateError
|
||||
from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item
|
||||
|
||||
se = make_serialized_item()
|
||||
@ -751,7 +753,10 @@ class TestSalesInvoice(unittest.TestCase):
|
||||
si.insert()
|
||||
|
||||
self.assertRaises(SerialNoStatusError, si.submit)
|
||||
|
||||
|
||||
# hack! because stock ledger entires are already inserted and are not rolled back!
|
||||
self.assertRaises(SerialNoDuplicateError, si.cancel)
|
||||
|
||||
def create_sales_invoice(**args):
|
||||
si = frappe.new_doc("Sales Invoice")
|
||||
args = frappe._dict(args)
|
||||
@ -759,13 +764,13 @@ def create_sales_invoice(**args):
|
||||
si.posting_date = args.posting_date
|
||||
if args.posting_time:
|
||||
si.posting_time = args.posting_time
|
||||
|
||||
|
||||
si.company = args.company or "_Test Company"
|
||||
si.customer = args.customer or "_Test Customer"
|
||||
si.debit_to = args.debit_to or "Debtors - _TC"
|
||||
si.update_stock = args.update_stock
|
||||
si.is_pos = args.is_pos
|
||||
|
||||
|
||||
si.append("items", {
|
||||
"item_code": args.item or args.item_code or "_Test Item",
|
||||
"warehouse": args.warehouse or "_Test Warehouse - _TC",
|
||||
@ -775,7 +780,7 @@ def create_sales_invoice(**args):
|
||||
"cost_center": "_Test Cost Center - _TC",
|
||||
"serial_no": args.serial_no
|
||||
})
|
||||
|
||||
|
||||
if not args.do_not_save:
|
||||
si.insert()
|
||||
if not args.do_not_submit:
|
||||
|
@ -197,7 +197,7 @@ class StockController(AccountsController):
|
||||
sl_dict.update(args)
|
||||
return sl_dict
|
||||
|
||||
def make_sl_entries(self, sl_entries, is_amended=None, allow_negative_stock=False,
|
||||
def make_sl_entries(self, sl_entries, is_amended=None, allow_negative_stock=False,
|
||||
via_landed_cost_voucher=False):
|
||||
from erpnext.stock.stock_ledger import make_sl_entries
|
||||
make_sl_entries(sl_entries, is_amended, allow_negative_stock, via_landed_cost_voucher)
|
||||
@ -237,7 +237,11 @@ def update_gl_entries_after(posting_date, posting_time, for_warehouses=None, for
|
||||
if not existing_gle or not compare_existing_and_expected_gle(existing_gle,
|
||||
expected_gle):
|
||||
_delete_gl_entries(voucher_type, voucher_no)
|
||||
voucher_obj.make_gl_entries(repost_future_gle=False)
|
||||
try:
|
||||
voucher_obj.make_gl_entries(repost_future_gle=False)
|
||||
except:
|
||||
print voucher_obj.as_json()
|
||||
raise
|
||||
else:
|
||||
_delete_gl_entries(voucher_type, voucher_no)
|
||||
|
||||
|
@ -197,7 +197,7 @@ def set_defaults(args):
|
||||
"float_precision": 3,
|
||||
'date_format': frappe.db.get_value("Country", args.get("country"), "date_format"),
|
||||
'number_format': number_format,
|
||||
'enable_scheduler': 1
|
||||
'enable_scheduler': 1 if not frappe.flags.in_test else 0
|
||||
})
|
||||
system_settings.save()
|
||||
|
||||
|
@ -6,9 +6,10 @@ import frappe
|
||||
|
||||
from erpnext.setup.page.setup_wizard.test_setup_data import args
|
||||
from erpnext.setup.page.setup_wizard.setup_wizard import setup_account
|
||||
import frappe.utils.scheduler
|
||||
|
||||
if __name__=="__main__":
|
||||
frappe.connect()
|
||||
frappe.local.form_dict = frappe._dict(args)
|
||||
setup_account()
|
||||
|
||||
frappe.utils.scheduler.disable_scheduler()
|
||||
|
@ -18,10 +18,10 @@ class TestStockReconciliation(unittest.TestCase):
|
||||
|
||||
def test_reco_for_fifo(self):
|
||||
self._test_reco_sle_gle("FIFO")
|
||||
|
||||
|
||||
def test_reco_for_moving_average(self):
|
||||
self._test_reco_sle_gle("Moving Average")
|
||||
|
||||
|
||||
def _test_reco_sle_gle(self, valuation_method):
|
||||
set_perpetual_inventory()
|
||||
# [[qty, valuation_rate, posting_date,
|
||||
@ -36,7 +36,7 @@ class TestStockReconciliation(unittest.TestCase):
|
||||
|
||||
for d in input_data:
|
||||
repost_stock_as_per_valuation_method(valuation_method)
|
||||
|
||||
|
||||
last_sle = get_previous_sle({
|
||||
"item_code": "_Test Item",
|
||||
"warehouse": "_Test Warehouse - _TC",
|
||||
@ -45,51 +45,51 @@ class TestStockReconciliation(unittest.TestCase):
|
||||
})
|
||||
|
||||
# submit stock reconciliation
|
||||
stock_reco = create_stock_reconciliation(qty=d[0], rate=d[1],
|
||||
stock_reco = create_stock_reconciliation(qty=d[0], rate=d[1],
|
||||
posting_date=d[2], posting_time=d[3])
|
||||
|
||||
|
||||
# check stock value
|
||||
sle = frappe.db.sql("""select * from `tabStock Ledger Entry`
|
||||
sle = frappe.db.sql("""select * from `tabStock Ledger Entry`
|
||||
where voucher_type='Stock Reconciliation' and voucher_no=%s""", stock_reco.name, as_dict=1)
|
||||
|
||||
|
||||
qty_after_transaction = flt(d[0]) if d[0] != "" else flt(last_sle.get("qty_after_transaction"))
|
||||
|
||||
|
||||
valuation_rate = flt(d[1]) if d[1] != "" else flt(last_sle.get("valuation_rate"))
|
||||
|
||||
|
||||
if qty_after_transaction == last_sle.get("qty_after_transaction") \
|
||||
and valuation_rate == last_sle.get("valuation_rate"):
|
||||
self.assertFalse(sle)
|
||||
else:
|
||||
self.assertEqual(sle[0].qty_after_transaction, qty_after_transaction)
|
||||
self.assertEqual(sle[0].stock_value, qty_after_transaction * valuation_rate)
|
||||
|
||||
|
||||
# no gl entries
|
||||
self.assertTrue(frappe.db.get_value("Stock Ledger Entry",
|
||||
self.assertTrue(frappe.db.get_value("Stock Ledger Entry",
|
||||
{"voucher_type": "Stock Reconciliation", "voucher_no": stock_reco.name}))
|
||||
self.assertFalse(get_stock_and_account_difference(["_Test Account Stock In Hand - _TC"]))
|
||||
|
||||
|
||||
stock_reco.cancel()
|
||||
|
||||
self.assertFalse(frappe.db.get_value("Stock Ledger Entry",
|
||||
|
||||
self.assertFalse(frappe.db.get_value("Stock Ledger Entry",
|
||||
{"voucher_type": "Stock Reconciliation", "voucher_no": stock_reco.name}))
|
||||
|
||||
self.assertFalse(frappe.db.get_value("GL Entry",
|
||||
|
||||
self.assertFalse(frappe.db.get_value("GL Entry",
|
||||
{"voucher_type": "Stock Reconciliation", "voucher_no": stock_reco.name}))
|
||||
|
||||
|
||||
set_perpetual_inventory(0)
|
||||
|
||||
def insert_existing_sle(self):
|
||||
from erpnext.stock.doctype.stock_entry.test_stock_entry import make_stock_entry
|
||||
|
||||
make_stock_entry(posting_date="2012-12-15", posting_time="02:00", item_code="_Test Item",
|
||||
|
||||
make_stock_entry(posting_date="2012-12-15", posting_time="02:00", item_code="_Test Item",
|
||||
target="_Test Warehouse - _TC", qty=10, incoming_rate=700)
|
||||
|
||||
make_stock_entry(posting_date="2012-12-25", posting_time="03:00", item_code="_Test Item",
|
||||
make_stock_entry(posting_date="2012-12-25", posting_time="03:00", item_code="_Test Item",
|
||||
source="_Test Warehouse - _TC", qty=15)
|
||||
|
||||
make_stock_entry(posting_date="2013-01-05", posting_time="07:00", item_code="_Test Item",
|
||||
make_stock_entry(posting_date="2013-01-05", posting_time="07:00", item_code="_Test Item",
|
||||
target="_Test Warehouse - _TC", qty=15, incoming_rate=1200)
|
||||
|
||||
|
||||
def create_stock_reconciliation(**args):
|
||||
args = frappe._dict(args)
|
||||
sr = frappe.new_doc("Stock Reconciliation")
|
||||
@ -105,7 +105,9 @@ def create_stock_reconciliation(**args):
|
||||
"qty": args.qty,
|
||||
"valuation_rate": args.rate
|
||||
})
|
||||
|
||||
sr.insert()
|
||||
|
||||
sr.submit()
|
||||
return sr
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user