test(stock): use db-agnostic index introspection in Bin index test

test_index_exists used `frappe.db.sql("show index from tabBin ...")`. "SHOW INDEX"
is MySQL-only syntax and errors on Postgres (syntax error at "from"), so the test
could not run there. Use the db-agnostic frappe.db.has_index("tabBin",
"unique_item_warehouse") instead.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Mihir Kandoi
2026-06-21 10:25:30 +05:30
parent 3d9b704730
commit f66ef869fc

View File

@@ -27,6 +27,6 @@ class TestBin(ERPNextTestSuite):
self.assertEqual(bin.item_code, item_code)
def test_index_exists(self):
indexes = frappe.db.sql("show index from tabBin where Non_unique = 0", as_dict=1)
if not any(index.get("Key_name") == "unique_item_warehouse" for index in indexes):
# has_index is db-agnostic; raw "SHOW INDEX" is MySQL-only and errors on Postgres
if not frappe.db.has_index("tabBin", "unique_item_warehouse"):
self.fail("Expected unique index on item-warehouse")