blob: 9ee0c9f3b5ab79990d6c30c3677fd6adcf55e031 [file] [log] [blame]
Ankush Menat47f27a52022-04-01 15:20:40 +05301import frappe
2from frappe.tests.utils import FrappeTestCase
3
4from erpnext.stock.doctype.item.test_item import make_item
5from erpnext.stock.utils import scan_barcode
6
7
8class TestStockUtilities(FrappeTestCase):
9 def test_barcode_scanning(self):
10 simple_item = make_item(properties={"barcodes": [{"barcode": "12399"}]})
11 self.assertEqual(scan_barcode("12399")["item_code"], simple_item.name)
12
13 batch_item = make_item(properties={"has_batch_no": 1, "create_new_batch": 1})
14 batch = frappe.get_doc(doctype="Batch", item=batch_item.name).insert()
15
16 batch_scan = scan_barcode(batch.name)
17 self.assertEqual(batch_scan["item_code"], batch_item.name)
18 self.assertEqual(batch_scan["batch_no"], batch.name)
19 self.assertEqual(batch_scan["has_batch_no"], 1)
20 self.assertEqual(batch_scan["has_serial_no"], 0)
21
22 serial_item = make_item(properties={"has_serial_no": 1})
23 serial = frappe.get_doc(
24 doctype="Serial No", item_code=serial_item.name, serial_no=frappe.generate_hash()
25 ).insert()
26
27 serial_scan = scan_barcode(serial.name)
28 self.assertEqual(serial_scan["item_code"], serial_item.name)
29 self.assertEqual(serial_scan["serial_no"], serial.name)
30 self.assertEqual(serial_scan["has_batch_no"], 0)
31 self.assertEqual(serial_scan["has_serial_no"], 1)