test: Enable basic tests
diff --git a/erpnext/stock/doctype/pick_list/test_pick_list.py b/erpnext/stock/doctype/pick_list/test_pick_list.py
index 940d40e..d32e345 100644
--- a/erpnext/stock/doctype/pick_list/test_pick_list.py
+++ b/erpnext/stock/doctype/pick_list/test_pick_list.py
@@ -3,108 +3,158 @@
# See license.txt
from __future__ import unicode_literals
-# import frappe
+import frappe
import unittest
-# test_dependencies = ['Item', 'Sales Invoice', 'Stock Entry', 'Batch']
+test_dependencies = ['Item', 'Sales Invoice', 'Stock Entry', 'Batch']
+
+from erpnext.stock.doctype.stock_reconciliation.stock_reconciliation \
+ import EmptyStockReconciliationItemsError
class TestPickList(unittest.TestCase):
+
def test_pick_list_picks_warehouse_for_each_item(self):
- pass
-# pick_list = frappe.get_doc({
-# 'doctype': 'Pick List',
-# 'company': '_Test Company',
-# 'customer': '_Test Customer',
-# 'items_based_on': 'Sales Order',
-# 'items': [{
-# 'item_code': '_Test Item Home Desktop 100',
-# 'qty': 5,
-# 'stock_qty': 5,
-# 'conversion_factor': 1,
-# 'sales_order': '_T-Sales Order-1',
-# 'sales_item': '_T-Sales Order-1_item',
-# }]
-# })
-# pick_list.set_item_locations()
+ try:
+ frappe.get_doc({
+ 'doctype': 'Stock Reconciliation',
+ 'company': '_Test Company',
+ 'purpose': 'Opening Stock',
+ 'expense_account': 'Temporary Opening - _TC',
+ 'items': [{
+ 'item_code': '_Test Item Home Desktop 100',
+ 'warehouse': '_Test Warehouse - _TC',
+ 'valuation_rate': 100,
+ 'qty': 5
+ }]
+ }).submit()
+ except EmptyStockReconciliationItemsError:
+ pass
-# self.assertEqual(pick_list.locations[0].item_code, '_Test Item Home Desktop 100')
-# self.assertEqual(pick_list.locations[0].warehouse, '_Test Warehouse - _TC')
-# self.assertEqual(pick_list.locations[0].qty, 5)
+ pick_list = frappe.get_doc({
+ 'doctype': 'Pick List',
+ 'company': '_Test Company',
+ 'customer': '_Test Customer',
+ 'items_based_on': 'Sales Order',
+ 'locations': [{
+ 'item_code': '_Test Item Home Desktop 100',
+ 'qty': 5,
+ 'stock_qty': 5,
+ 'conversion_factor': 1,
+ 'sales_order': '_T-Sales Order-1',
+ 'sales_item': '_T-Sales Order-1_item',
+ }]
+ })
+ pick_list.set_item_locations()
- # def test_pick_list_skips_out_of_stock_item(self):
- # pick_list = frappe.get_doc({
- # 'doctype': 'Pick List',
- # 'company': '_Test Company',
- # 'customer': '_Test Customer',
- # 'items_based_on': 'Sales Order',
- # 'items': [{
- # 'item_code': '_Test Item Warehouse Group Wise Reorder',
- # 'qty': 1000,
- # 'stock_qty': 1000,
- # 'conversion_factor': 1,
- # 'sales_order': '_T-Sales Order-1',
- # 'sales_item': '_T-Sales Order-1_item',
- # }]
- # })
+ self.assertEqual(pick_list.locations[0].item_code, '_Test Item Home Desktop 100')
+ self.assertEqual(pick_list.locations[0].warehouse, '_Test Warehouse - _TC')
+ self.assertEqual(pick_list.locations[0].qty, 5)
- # pick_list.set_item_locations()
+ def test_pick_list_splits_row_according_to_warhouse_availability(self):
+ try:
+ frappe.get_doc({
+ 'doctype': 'Stock Reconciliation',
+ 'company': '_Test Company',
+ 'purpose': 'Opening Stock',
+ 'expense_account': 'Temporary Opening - _TC',
+ 'items': [{
+ 'item_code': '_Test Item Warehouse Group Wise Reorder',
+ 'warehouse': '_Test Warehouse Group-C1 - _TC',
+ 'valuation_rate': 100,
+ 'qty': 5
+ }]
+ }).submit()
+ except EmptyStockReconciliationItemsError:
+ pass
- # self.assertEqual(pick_list.locations[0].item_code, '_Test Item Warehouse Group Wise Reorder')
- # self.assertEqual(pick_list.locations[0].warehouse, '_Test Warehouse Group-C1 - _TC')
- # self.assertEqual(pick_list.locations[0].qty, 30)
+ try:
+ frappe.get_doc({
+ 'doctype': 'Stock Reconciliation',
+ 'company': '_Test Company',
+ 'purpose': 'Opening Stock',
+ 'expense_account': 'Temporary Opening - _TC',
+ 'items': [{
+ 'item_code': '_Test Item Warehouse Group Wise Reorder',
+ 'warehouse': '_Test Warehouse 2 - _TC',
+ 'valuation_rate': 400,
+ 'qty': 10
+ }]
+ }).submit()
+ except EmptyStockReconciliationItemsError:
+ pass
+ pick_list = frappe.get_doc({
+ 'doctype': 'Pick List',
+ 'company': '_Test Company',
+ 'customer': '_Test Customer',
+ 'items_based_on': 'Sales Order',
+ 'locations': [{
+ 'item_code': '_Test Item Warehouse Group Wise Reorder',
+ 'qty': 1000,
+ 'stock_qty': 1000,
+ 'conversion_factor': 1,
+ 'sales_order': '_T-Sales Order-1',
+ 'sales_item': '_T-Sales Order-1_item',
+ }]
+ })
- # def test_pick_list_skips_items_in_expired_batch(self):
- # pass
+ pick_list.set_item_locations()
- # def test_pick_list_shows_serial_no_for_serialized_item(self):
+ self.assertEqual(pick_list.locations[0].item_code, '_Test Item Warehouse Group Wise Reorder')
+ self.assertEqual(pick_list.locations[0].warehouse, '_Test Warehouse Group-C1 - _TC')
+ self.assertEqual(pick_list.locations[0].qty, 5)
- # stock_reconciliation = frappe.get_doc({
- # 'doctype': 'Stock Reconciliation',
- # 'company': '_Test Company',
- # 'items': [{
- # 'item_code': '_Test Serialized Item',
- # 'warehouse': '_Test Warehouse - _TC',
- # 'qty': 5,
- # 'serial_no': '123450\n123451\n123452\n123453\n123454'
- # }]
- # })
+ self.assertEqual(pick_list.locations[1].item_code, '_Test Item Warehouse Group Wise Reorder')
+ self.assertEqual(pick_list.locations[1].warehouse, '_Test Warehouse 2 - _TC')
+ self.assertEqual(pick_list.locations[1].qty, 10)
- # stock_reconciliation.submit()
+ def test_pick_list_shows_serial_no_for_serialized_item(self):
- # pick_list = frappe.get_doc({
- # 'doctype': 'Pick List',
- # 'company': '_Test Company',
- # 'customer': '_Test Customer',
- # 'items_based_on': 'Sales Order',
- # 'items': [{
- # 'item_code': '_Test Serialized Item',
- # 'qty': 1000,
- # 'stock_qty': 1000,
- # 'conversion_factor': 1,
- # 'sales_order': '_T-Sales Order-1',
- # 'sales_item': '_T-Sales Order-1_item',
- # }]
- # })
+ stock_reconciliation = frappe.get_doc({
+ 'doctype': 'Stock Reconciliation',
+ 'company': '_Test Company',
+ 'items': [{
+ 'item_code': '_Test Serialized Item',
+ 'warehouse': '_Test Warehouse - _TC',
+ 'valuation_rate': 100,
+ 'qty': 5,
+ 'serial_no': '123450\n123451\n123452\n123453\n123454'
+ }]
+ })
- # pick_list.set_item_locations()
- # self.assertEqual(pick_list.locations[0].item_code, '_Test Serialized Item')
- # self.assertEqual(pick_list.locations[0].warehouse, '_Test Warehouse - _TC')
- # self.assertEqual(pick_list.locations[0].qty, 5)
- # self.assertEqual(pick_list.locations[0].serial_no, '123450\n123451\n123452\n123453\n123454')
+ stock_reconciliation.submit()
+ pick_list = frappe.get_doc({
+ 'doctype': 'Pick List',
+ 'company': '_Test Company',
+ 'customer': '_Test Customer',
+ 'items_based_on': 'Sales Order',
+ 'locations': [{
+ 'item_code': '_Test Serialized Item',
+ 'qty': 1000,
+ 'stock_qty': 1000,
+ 'conversion_factor': 1,
+ 'sales_order': '_T-Sales Order-1',
+ 'sales_item': '_T-Sales Order-1_item',
+ }]
+ })
+
+ pick_list.set_item_locations()
+ self.assertEqual(pick_list.locations[0].item_code, '_Test Serialized Item')
+ self.assertEqual(pick_list.locations[0].warehouse, '_Test Warehouse - _TC')
+ self.assertEqual(pick_list.locations[0].qty, 5)
+ self.assertEqual(pick_list.locations[0].serial_no, '123450\n123451\n123452\n123453\n123454')
# def test_pick_list_for_multiple_reference_doctypes(self):
# pass
+ # def test_pick_list_skips_items_in_expired_batch(self):
+ # pass
-## records required
+ # def test_pick_list_from_sales_order(self):
+ # pass
-'''
-batch no
-items
-sales invoice
-stock entries
- bin
- stock ledger entry
-warehouses
-'''
\ No newline at end of file
+ # def test_pick_list_from_work_order(self):
+ # pass
+
+ # def test_pick_list_from_material_request(self):
+ # pass
\ No newline at end of file