Ankush Menat | 47f27a5 | 2022-04-01 15:20:40 +0530 | [diff] [blame] | 1 | import frappe |
| 2 | from frappe.tests.utils import FrappeTestCase |
| 3 | |
| 4 | from erpnext.stock.doctype.item.test_item import make_item |
| 5 | from erpnext.stock.utils import scan_barcode |
| 6 | |
| 7 | |
| 8 | class 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) |