Merge pull request #48038 from ljain112/fix-test
This commit is contained in:
@@ -295,22 +295,21 @@ class TestPurchaseOrder(IntegrationTestCase):
|
|||||||
user = "test@example.com"
|
user = "test@example.com"
|
||||||
test_user = frappe.get_doc("User", user)
|
test_user = frappe.get_doc("User", user)
|
||||||
test_user.add_roles("Accounts User")
|
test_user.add_roles("Accounts User")
|
||||||
frappe.set_user(user)
|
|
||||||
|
|
||||||
# update qty
|
with self.set_user(user):
|
||||||
trans_item = json.dumps(
|
# update qty
|
||||||
[{"item_code": "_Test Item", "rate": 200, "qty": 7, "docname": po.items[0].name}]
|
trans_item = json.dumps(
|
||||||
)
|
[{"item_code": "_Test Item", "rate": 200, "qty": 7, "docname": po.items[0].name}]
|
||||||
self.assertRaises(
|
)
|
||||||
frappe.ValidationError, update_child_qty_rate, "Purchase Order", trans_item, po.name
|
self.assertRaises(
|
||||||
)
|
frappe.ValidationError, update_child_qty_rate, "Purchase Order", trans_item, po.name
|
||||||
|
)
|
||||||
|
|
||||||
# add new item
|
# add new item
|
||||||
trans_item = json.dumps([{"item_code": "_Test Item", "rate": 100, "qty": 2}])
|
trans_item = json.dumps([{"item_code": "_Test Item", "rate": 100, "qty": 2}])
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
frappe.ValidationError, update_child_qty_rate, "Purchase Order", trans_item, po.name
|
frappe.ValidationError, update_child_qty_rate, "Purchase Order", trans_item, po.name
|
||||||
)
|
)
|
||||||
frappe.set_user("Administrator")
|
|
||||||
|
|
||||||
def test_update_child_with_tax_template(self):
|
def test_update_child_with_tax_template(self):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -192,7 +192,7 @@ class TestSupplierPortal(IntegrationTestCase):
|
|||||||
supplier.append("portal_users", {"user": user})
|
supplier.append("portal_users", {"user": user})
|
||||||
supplier.save()
|
supplier.save()
|
||||||
|
|
||||||
frappe.set_user(user)
|
with self.set_user(user):
|
||||||
_, suppliers = get_customers_suppliers("Purchase Order", user)
|
_, suppliers = get_customers_suppliers("Purchase Order", user)
|
||||||
|
|
||||||
self.assertIn(supplier.name, suppliers)
|
self.assertIn(supplier.name, suppliers)
|
||||||
|
|||||||
@@ -105,7 +105,6 @@ class TestQueries(ERPNextTestSuite):
|
|||||||
value=1,
|
value=1,
|
||||||
property_type="Check",
|
property_type="Check",
|
||||||
)
|
)
|
||||||
frappe.clear_cache(doctype="Payment Entry")
|
|
||||||
|
|
||||||
user = create_user("test_employee_query@example.com", "Accounts User", "HR User")
|
user = create_user("test_employee_query@example.com", "Accounts User", "HR User")
|
||||||
add_user_permissions(
|
add_user_permissions(
|
||||||
@@ -136,7 +135,6 @@ class TestQueries(ERPNextTestSuite):
|
|||||||
self.assertGreater(len(result), 1)
|
self.assertGreater(len(result), 1)
|
||||||
|
|
||||||
ps.delete(ignore_permissions=1, force=1, delete_permanently=1)
|
ps.delete(ignore_permissions=1, force=1, delete_permanently=1)
|
||||||
frappe.clear_cache(doctype="Payment Entry")
|
|
||||||
|
|
||||||
# only one employee should be returned even though ignore_user_permissions is passed as 1
|
# only one employee should be returned even though ignore_user_permissions is passed as 1
|
||||||
result = queries.employee_query(**params)
|
result = queries.employee_query(**params)
|
||||||
|
|||||||
@@ -547,17 +547,20 @@ class TestSalesOrder(AccountsTestMixin, IntegrationTestCase):
|
|||||||
so = make_sales_order(item_code="_Test Item", qty=4)
|
so = make_sales_order(item_code="_Test Item", qty=4)
|
||||||
|
|
||||||
test_user = create_user("test_so_child_perms@example.com", "Accounts User")
|
test_user = create_user("test_so_child_perms@example.com", "Accounts User")
|
||||||
frappe.set_user(test_user.name)
|
with self.set_user(test_user.name):
|
||||||
|
# update qty
|
||||||
|
trans_item = json.dumps(
|
||||||
|
[{"item_code": "_Test Item", "rate": 200, "qty": 7, "docname": so.items[0].name}]
|
||||||
|
)
|
||||||
|
self.assertRaises(
|
||||||
|
frappe.ValidationError, update_child_qty_rate, "Sales Order", trans_item, so.name
|
||||||
|
)
|
||||||
|
|
||||||
# update qty
|
# add new item
|
||||||
trans_item = json.dumps(
|
trans_item = json.dumps([{"item_code": "_Test Item", "rate": 100, "qty": 2}])
|
||||||
[{"item_code": "_Test Item", "rate": 200, "qty": 7, "docname": so.items[0].name}]
|
self.assertRaises(
|
||||||
)
|
frappe.ValidationError, update_child_qty_rate, "Sales Order", trans_item, so.name
|
||||||
self.assertRaises(frappe.ValidationError, update_child_qty_rate, "Sales Order", trans_item, so.name)
|
)
|
||||||
|
|
||||||
# add new item
|
|
||||||
trans_item = json.dumps([{"item_code": "_Test Item", "rate": 100, "qty": 2}])
|
|
||||||
self.assertRaises(frappe.ValidationError, update_child_qty_rate, "Sales Order", trans_item, so.name)
|
|
||||||
|
|
||||||
def test_update_child_qty_rate_with_workflow(self):
|
def test_update_child_qty_rate_with_workflow(self):
|
||||||
from frappe.model.workflow import apply_workflow
|
from frappe.model.workflow import apply_workflow
|
||||||
@@ -569,26 +572,25 @@ class TestSalesOrder(AccountsTestMixin, IntegrationTestCase):
|
|||||||
user = "test@example.com"
|
user = "test@example.com"
|
||||||
test_user = frappe.get_doc("User", user)
|
test_user = frappe.get_doc("User", user)
|
||||||
test_user.add_roles("Sales User", "Test Junior Approver")
|
test_user.add_roles("Sales User", "Test Junior Approver")
|
||||||
frappe.set_user(user)
|
with self.set_user(user):
|
||||||
|
# user shouldn't be able to edit since grand_total will become > 200 if qty is doubled
|
||||||
|
trans_item = json.dumps(
|
||||||
|
[{"item_code": "_Test Item", "rate": 150, "qty": 2, "docname": so.items[0].name}]
|
||||||
|
)
|
||||||
|
self.assertRaises(
|
||||||
|
frappe.ValidationError, update_child_qty_rate, "Sales Order", trans_item, so.name
|
||||||
|
)
|
||||||
|
|
||||||
# user shouldn't be able to edit since grand_total will become > 200 if qty is doubled
|
|
||||||
trans_item = json.dumps(
|
|
||||||
[{"item_code": "_Test Item", "rate": 150, "qty": 2, "docname": so.items[0].name}]
|
|
||||||
)
|
|
||||||
self.assertRaises(frappe.ValidationError, update_child_qty_rate, "Sales Order", trans_item, so.name)
|
|
||||||
|
|
||||||
frappe.set_user("Administrator")
|
|
||||||
user2 = "test2@example.com"
|
user2 = "test2@example.com"
|
||||||
test_user2 = frappe.get_doc("User", user2)
|
test_user2 = frappe.get_doc("User", user2)
|
||||||
test_user2.add_roles("Sales User", "Test Approver")
|
test_user2.add_roles("Sales User", "Test Approver")
|
||||||
frappe.set_user(user2)
|
|
||||||
|
|
||||||
# Test Approver is allowed to edit with grand_total > 200
|
with self.set_user(user2):
|
||||||
update_child_qty_rate("Sales Order", trans_item, so.name)
|
# Test Approver is allowed to edit with grand_total > 200
|
||||||
so.reload()
|
update_child_qty_rate("Sales Order", trans_item, so.name)
|
||||||
self.assertEqual(so.items[0].qty, 2)
|
so.reload()
|
||||||
|
self.assertEqual(so.items[0].qty, 2)
|
||||||
|
|
||||||
frappe.set_user("Administrator")
|
|
||||||
test_user.remove_roles("Sales User", "Test Junior Approver", "Test Approver")
|
test_user.remove_roles("Sales User", "Test Junior Approver", "Test Approver")
|
||||||
test_user2.remove_roles("Sales User", "Test Junior Approver", "Test Approver")
|
test_user2.remove_roles("Sales User", "Test Junior Approver", "Test Approver")
|
||||||
workflow.is_active = 0
|
workflow.is_active = 0
|
||||||
@@ -816,22 +818,20 @@ class TestSalesOrder(AccountsTestMixin, IntegrationTestCase):
|
|||||||
frappe.permissions.add_user_permission("Warehouse", "_Test Warehouse 2 - _TC1", test_user_2.name)
|
frappe.permissions.add_user_permission("Warehouse", "_Test Warehouse 2 - _TC1", test_user_2.name)
|
||||||
frappe.permissions.add_user_permission("Company", "_Test Company 1", test_user_2.name)
|
frappe.permissions.add_user_permission("Company", "_Test Company 1", test_user_2.name)
|
||||||
|
|
||||||
frappe.set_user(test_user.name)
|
with self.set_user(test_user.name):
|
||||||
|
so = make_sales_order(
|
||||||
|
company="_Test Company 1",
|
||||||
|
customer="_Test Customer 1",
|
||||||
|
warehouse="_Test Warehouse 2 - _TC1",
|
||||||
|
do_not_save=True,
|
||||||
|
)
|
||||||
|
so.conversion_rate = 0.02
|
||||||
|
so.plc_conversion_rate = 0.02
|
||||||
|
self.assertRaises(frappe.PermissionError, so.insert)
|
||||||
|
|
||||||
so = make_sales_order(
|
with self.set_user(test_user_2.name):
|
||||||
company="_Test Company 1",
|
so.insert()
|
||||||
customer="_Test Customer 1",
|
|
||||||
warehouse="_Test Warehouse 2 - _TC1",
|
|
||||||
do_not_save=True,
|
|
||||||
)
|
|
||||||
so.conversion_rate = 0.02
|
|
||||||
so.plc_conversion_rate = 0.02
|
|
||||||
self.assertRaises(frappe.PermissionError, so.insert)
|
|
||||||
|
|
||||||
frappe.set_user(test_user_2.name)
|
|
||||||
so.insert()
|
|
||||||
|
|
||||||
frappe.set_user("Administrator")
|
|
||||||
frappe.permissions.remove_user_permission("Warehouse", "_Test Warehouse 1 - _TC", test_user.name)
|
frappe.permissions.remove_user_permission("Warehouse", "_Test Warehouse 1 - _TC", test_user.name)
|
||||||
frappe.permissions.remove_user_permission("Warehouse", "_Test Warehouse 2 - _TC1", test_user_2.name)
|
frappe.permissions.remove_user_permission("Warehouse", "_Test Warehouse 2 - _TC1", test_user_2.name)
|
||||||
frappe.permissions.remove_user_permission("Company", "_Test Company 1", test_user_2.name)
|
frappe.permissions.remove_user_permission("Company", "_Test Company 1", test_user_2.name)
|
||||||
|
|||||||
@@ -78,8 +78,6 @@ class TestInventoryDimension(IntegrationTestCase):
|
|||||||
self.assertFalse(custom_field)
|
self.assertFalse(custom_field)
|
||||||
|
|
||||||
def test_inventory_dimension(self):
|
def test_inventory_dimension(self):
|
||||||
frappe.clear_cache(doctype="Inventory Dimension")
|
|
||||||
|
|
||||||
warehouse = "Shelf Warehouse - _TC"
|
warehouse = "Shelf Warehouse - _TC"
|
||||||
item_code = "_Test Item"
|
item_code = "_Test Item"
|
||||||
|
|
||||||
@@ -150,8 +148,6 @@ class TestInventoryDimension(IntegrationTestCase):
|
|||||||
self.assertRaises(DoNotChangeError, inv_dim1.save)
|
self.assertRaises(DoNotChangeError, inv_dim1.save)
|
||||||
|
|
||||||
def test_inventory_dimension_for_purchase_receipt_and_delivery_note(self):
|
def test_inventory_dimension_for_purchase_receipt_and_delivery_note(self):
|
||||||
frappe.clear_cache(doctype="Inventory Dimension")
|
|
||||||
|
|
||||||
inv_dimension = create_inventory_dimension(
|
inv_dimension = create_inventory_dimension(
|
||||||
reference_document="Rack", dimension_name="Rack", apply_to_all_doctypes=1
|
reference_document="Rack", dimension_name="Rack", apply_to_all_doctypes=1
|
||||||
)
|
)
|
||||||
@@ -167,9 +163,6 @@ class TestInventoryDimension(IntegrationTestCase):
|
|||||||
"Delivery Note", dict(fieldname="rack", label="Rack", fieldtype="Link", options="Rack")
|
"Delivery Note", dict(fieldname="rack", label="Rack", fieldtype="Link", options="Rack")
|
||||||
)
|
)
|
||||||
|
|
||||||
frappe.reload_doc("stock", "doctype", "purchase_receipt_item")
|
|
||||||
frappe.reload_doc("stock", "doctype", "delivery_note_item")
|
|
||||||
|
|
||||||
pr_doc = make_purchase_receipt(qty=2, do_not_submit=True)
|
pr_doc = make_purchase_receipt(qty=2, do_not_submit=True)
|
||||||
pr_doc.rack = "Rack 1"
|
pr_doc.rack = "Rack 1"
|
||||||
pr_doc.save()
|
pr_doc.save()
|
||||||
@@ -439,7 +432,6 @@ class TestInventoryDimension(IntegrationTestCase):
|
|||||||
self.assertEqual(d.store, "Inter Transfer Store 2")
|
self.assertEqual(d.store, "Inter Transfer Store 2")
|
||||||
|
|
||||||
def test_validate_negative_stock_for_inventory_dimension(self):
|
def test_validate_negative_stock_for_inventory_dimension(self):
|
||||||
frappe.clear_cache(doctype="Inventory Dimension")
|
|
||||||
item_code = "Test Negative Inventory Dimension Item"
|
item_code = "Test Negative Inventory Dimension Item"
|
||||||
frappe.db.set_single_value("Stock Settings", "allow_negative_stock", 1)
|
frappe.db.set_single_value("Stock Settings", "allow_negative_stock", 1)
|
||||||
create_item(item_code)
|
create_item(item_code)
|
||||||
|
|||||||
@@ -752,15 +752,14 @@ class TestStockEntry(IntegrationTestCase):
|
|||||||
frappe.get_doc("User", "test2@example.com").add_roles(
|
frappe.get_doc("User", "test2@example.com").add_roles(
|
||||||
"Sales User", "Sales Manager", "Stock User", "Stock Manager"
|
"Sales User", "Sales Manager", "Stock User", "Stock Manager"
|
||||||
)
|
)
|
||||||
frappe.set_user("test2@example.com")
|
with self.set_user("test2@example.com"):
|
||||||
|
from erpnext.stock.utils import InvalidWarehouseCompany
|
||||||
|
|
||||||
from erpnext.stock.utils import InvalidWarehouseCompany
|
st1 = frappe.copy_doc(self.globalTestRecords["Stock Entry"][0])
|
||||||
|
st1.get("items")[0].t_warehouse = "_Test Warehouse 2 - _TC1"
|
||||||
st1 = frappe.copy_doc(self.globalTestRecords["Stock Entry"][0])
|
st1.set_stock_entry_type()
|
||||||
st1.get("items")[0].t_warehouse = "_Test Warehouse 2 - _TC1"
|
st1.insert()
|
||||||
st1.set_stock_entry_type()
|
self.assertRaises(InvalidWarehouseCompany, st1.submit)
|
||||||
st1.insert()
|
|
||||||
self.assertRaises(InvalidWarehouseCompany, st1.submit)
|
|
||||||
|
|
||||||
# permission tests
|
# permission tests
|
||||||
def test_warehouse_user(self):
|
def test_warehouse_user(self):
|
||||||
@@ -778,24 +777,23 @@ class TestStockEntry(IntegrationTestCase):
|
|||||||
st1 = frappe.copy_doc(self.globalTestRecords["Stock Entry"][0])
|
st1 = frappe.copy_doc(self.globalTestRecords["Stock Entry"][0])
|
||||||
st1.company = "_Test Company 1"
|
st1.company = "_Test Company 1"
|
||||||
|
|
||||||
frappe.set_user("test@example.com")
|
with self.set_user("test@example.com"):
|
||||||
st1.get("items")[0].t_warehouse = "_Test Warehouse 2 - _TC1"
|
st1.get("items")[0].t_warehouse = "_Test Warehouse 2 - _TC1"
|
||||||
self.assertRaises(frappe.PermissionError, st1.insert)
|
self.assertRaises(frappe.PermissionError, st1.insert)
|
||||||
|
|
||||||
test_user.add_roles("System Manager")
|
test_user.add_roles("System Manager")
|
||||||
|
|
||||||
frappe.set_user("test2@example.com")
|
with self.set_user("test2@example.com"):
|
||||||
st1 = frappe.copy_doc(self.globalTestRecords["Stock Entry"][0])
|
st1 = frappe.copy_doc(self.globalTestRecords["Stock Entry"][0])
|
||||||
st1.company = "_Test Company 1"
|
st1.company = "_Test Company 1"
|
||||||
st1.get("items")[0].t_warehouse = "_Test Warehouse 2 - _TC1"
|
st1.get("items")[0].t_warehouse = "_Test Warehouse 2 - _TC1"
|
||||||
st1.get("items")[0].expense_account = "Stock Adjustment - _TC1"
|
st1.get("items")[0].expense_account = "Stock Adjustment - _TC1"
|
||||||
st1.get("items")[0].cost_center = "Main - _TC1"
|
st1.get("items")[0].cost_center = "Main - _TC1"
|
||||||
st1.set_stock_entry_type()
|
st1.set_stock_entry_type()
|
||||||
st1.insert()
|
st1.insert()
|
||||||
st1.submit()
|
st1.submit()
|
||||||
st1.cancel()
|
st1.cancel()
|
||||||
|
|
||||||
frappe.set_user("Administrator")
|
|
||||||
remove_user_permission("Warehouse", "_Test Warehouse 1 - _TC", "test@example.com")
|
remove_user_permission("Warehouse", "_Test Warehouse 1 - _TC", "test@example.com")
|
||||||
remove_user_permission("Warehouse", "_Test Warehouse 2 - _TC1", "test2@example.com")
|
remove_user_permission("Warehouse", "_Test Warehouse 2 - _TC1", "test2@example.com")
|
||||||
remove_user_permission("Company", "_Test Company 1", "test2@example.com")
|
remove_user_permission("Company", "_Test Company 1", "test2@example.com")
|
||||||
|
|||||||
@@ -423,37 +423,35 @@ class TestStockLedgerEntry(IntegrationTestCase, StockTestMixin):
|
|||||||
user.add_roles("Stock User")
|
user.add_roles("Stock User")
|
||||||
user.remove_roles("Stock Manager")
|
user.remove_roles("Stock Manager")
|
||||||
|
|
||||||
frappe.set_user(user.name)
|
with self.set_user(user.name):
|
||||||
|
stock_entry_on_today = make_stock_entry(
|
||||||
|
target="_Test Warehouse - _TC", qty=10, basic_rate=100
|
||||||
|
)
|
||||||
|
back_dated_se_1 = make_stock_entry(
|
||||||
|
target="_Test Warehouse - _TC",
|
||||||
|
qty=10,
|
||||||
|
basic_rate=100,
|
||||||
|
posting_date=add_days(today(), -1),
|
||||||
|
do_not_submit=True,
|
||||||
|
)
|
||||||
|
|
||||||
stock_entry_on_today = make_stock_entry(target="_Test Warehouse - _TC", qty=10, basic_rate=100)
|
# Block back-dated entry
|
||||||
back_dated_se_1 = make_stock_entry(
|
self.assertRaises(BackDatedStockTransaction, back_dated_se_1.submit)
|
||||||
target="_Test Warehouse - _TC",
|
|
||||||
qty=10,
|
|
||||||
basic_rate=100,
|
|
||||||
posting_date=add_days(today(), -1),
|
|
||||||
do_not_submit=True,
|
|
||||||
)
|
|
||||||
|
|
||||||
# Block back-dated entry
|
|
||||||
self.assertRaises(BackDatedStockTransaction, back_dated_se_1.submit)
|
|
||||||
|
|
||||||
frappe.set_user("Administrator")
|
|
||||||
user.add_roles("Stock Manager")
|
user.add_roles("Stock Manager")
|
||||||
frappe.set_user(user.name)
|
with self.set_user(user.name):
|
||||||
|
# Back dated entry allowed to Stock Manager
|
||||||
|
back_dated_se_2 = make_stock_entry(
|
||||||
|
target="_Test Warehouse - _TC", qty=10, basic_rate=100, posting_date=add_days(today(), -1)
|
||||||
|
)
|
||||||
|
|
||||||
# Back dated entry allowed to Stock Manager
|
back_dated_se_2.cancel()
|
||||||
back_dated_se_2 = make_stock_entry(
|
stock_entry_on_today.cancel()
|
||||||
target="_Test Warehouse - _TC", qty=10, basic_rate=100, posting_date=add_days(today(), -1)
|
|
||||||
)
|
|
||||||
|
|
||||||
back_dated_se_2.cancel()
|
|
||||||
stock_entry_on_today.cancel()
|
|
||||||
|
|
||||||
finally:
|
finally:
|
||||||
frappe.db.set_single_value(
|
frappe.db.set_single_value(
|
||||||
"Stock Settings", "role_allowed_to_create_edit_back_dated_transactions", None
|
"Stock Settings", "role_allowed_to_create_edit_back_dated_transactions", None
|
||||||
)
|
)
|
||||||
frappe.set_user("Administrator")
|
|
||||||
user.remove_roles("Stock Manager")
|
user.remove_roles("Stock Manager")
|
||||||
|
|
||||||
def test_batchwise_item_valuation_fifo(self):
|
def test_batchwise_item_valuation_fifo(self):
|
||||||
|
|||||||
@@ -27,21 +27,18 @@ class TestWebsite(IntegrationTestCase):
|
|||||||
create_order_assignment(supplier="Supplier1", po=po1.name)
|
create_order_assignment(supplier="Supplier1", po=po1.name)
|
||||||
create_order_assignment(supplier="Supplier2", po=po2.name)
|
create_order_assignment(supplier="Supplier2", po=po2.name)
|
||||||
|
|
||||||
frappe.set_user("Administrator")
|
|
||||||
# checking if data consist of all order assignment of Supplier1 and Supplier2
|
# checking if data consist of all order assignment of Supplier1 and Supplier2
|
||||||
self.assertTrue("Supplier1" and "Supplier2" in [data.supplier for data in get_data()])
|
self.assertTrue("Supplier1" and "Supplier2" in [data.supplier for data in get_data()])
|
||||||
|
|
||||||
frappe.set_user("supplier1@gmail.com")
|
with self.set_user("supplier1@gmail.com"):
|
||||||
# checking if data only consist of order assignment of Supplier1
|
# checking if data only consist of order assignment of Supplier1
|
||||||
self.assertTrue("Supplier1" in [data.supplier for data in get_data()])
|
self.assertTrue("Supplier1" in [data.supplier for data in get_data()])
|
||||||
self.assertFalse([data.supplier for data in get_data() if data.supplier != "Supplier1"])
|
self.assertFalse([data.supplier for data in get_data() if data.supplier != "Supplier1"])
|
||||||
|
|
||||||
frappe.set_user("supplier2@gmail.com")
|
with self.set_user("supplier2@gmail.com"):
|
||||||
# checking if data only consist of order assignment of Supplier2
|
# checking if data only consist of order assignment of Supplier2
|
||||||
self.assertTrue("Supplier2" in [data.supplier for data in get_data()])
|
self.assertTrue("Supplier2" in [data.supplier for data in get_data()])
|
||||||
self.assertFalse([data.supplier for data in get_data() if data.supplier != "Supplier2"])
|
self.assertFalse([data.supplier for data in get_data() if data.supplier != "Supplier2"])
|
||||||
|
|
||||||
frappe.set_user("Administrator")
|
|
||||||
|
|
||||||
|
|
||||||
def get_data():
|
def get_data():
|
||||||
|
|||||||
Reference in New Issue
Block a user