Merge branch 'develop' of https://github.com/frappe/erpnext into e-commerce-refactor-develop
This commit is contained in:
		
						commit
						fd6f3c6b88
					
				| @ -1087,8 +1087,6 @@ class TestSalesInvoice(unittest.TestCase): | ||||
| 
 | ||||
| 		actual_qty_1 = get_qty_after_transaction(item_code = "_Test Item", warehouse = "Stores - TCP1") | ||||
| 
 | ||||
| 		frappe.db.commit() | ||||
| 
 | ||||
| 		self.assertEqual(actual_qty_0 - 5, actual_qty_1) | ||||
| 
 | ||||
| 		# outgoing_rate | ||||
|  | ||||
| @ -45,7 +45,6 @@ class TestProcurementTracker(unittest.TestCase): | ||||
| 		pr = make_purchase_receipt(po.name) | ||||
| 		pr.get("items")[0].cost_center = "Main - _TPC" | ||||
| 		pr.submit() | ||||
| 		frappe.db.commit() | ||||
| 		date_obj = datetime.date(datetime.now()) | ||||
| 
 | ||||
| 		po.load_from_db() | ||||
|  | ||||
| @ -74,7 +74,6 @@ class TestDailyWorkSummary(unittest.TestCase): | ||||
| 			from `tabEmail Queue` as q, `tabEmail Queue Recipient` as r \ | ||||
| 			where q.name = r.parent""", as_dict=1) | ||||
| 
 | ||||
| 		frappe.db.commit() | ||||
| 
 | ||||
| 	def setup_groups(self, hour=None): | ||||
| 		# setup email to trigger at this hour | ||||
|  | ||||
| @ -1382,7 +1382,6 @@ def make_sales_order_workflow(): | ||||
| 
 | ||||
| 	frappe.get_doc(dict(doctype='Role', role_name='Test Junior Approver')).insert(ignore_if_duplicate=True) | ||||
| 	frappe.get_doc(dict(doctype='Role', role_name='Test Approver')).insert(ignore_if_duplicate=True) | ||||
| 	frappe.db.commit() | ||||
| 	frappe.cache().hdel('roles', frappe.session.user) | ||||
| 
 | ||||
| 	workflow = frappe.get_doc({ | ||||
|  | ||||
| @ -1,8 +1,5 @@ | ||||
| # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors | ||||
| # License: GNU General Public License v3. See license.txt | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import unittest | ||||
| 
 | ||||
| import frappe | ||||
| from frappe.exceptions import ValidationError | ||||
| @ -11,9 +8,10 @@ from frappe.utils import cint, flt | ||||
| from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice | ||||
| from erpnext.stock.doctype.batch.batch import UnableToSelectBatchError, get_batch_no, get_batch_qty | ||||
| from erpnext.stock.get_item_details import get_item_details | ||||
| from erpnext.tests.utils import ERPNextTestCase | ||||
| 
 | ||||
| 
 | ||||
| class TestBatch(unittest.TestCase): | ||||
| class TestBatch(ERPNextTestCase): | ||||
| 	def test_item_has_batch_enabled(self): | ||||
| 		self.assertRaises(ValidationError, frappe.get_doc({ | ||||
| 			"doctype": "Batch", | ||||
|  | ||||
| @ -5,7 +5,6 @@ | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import json | ||||
| import unittest | ||||
| 
 | ||||
| import frappe | ||||
| from frappe.utils import cstr, flt, nowdate, nowtime | ||||
| @ -37,9 +36,10 @@ from erpnext.stock.doctype.stock_reconciliation.test_stock_reconciliation import | ||||
| ) | ||||
| from erpnext.stock.doctype.warehouse.test_warehouse import get_warehouse | ||||
| from erpnext.stock.stock_ledger import get_previous_sle | ||||
| from erpnext.tests.utils import ERPNextTestCase | ||||
| 
 | ||||
| 
 | ||||
| class TestDeliveryNote(unittest.TestCase): | ||||
| class TestDeliveryNote(ERPNextTestCase): | ||||
| 	def test_over_billing_against_dn(self): | ||||
| 		frappe.db.set_value("Stock Settings", None, "allow_negative_stock", 1) | ||||
| 
 | ||||
|  | ||||
| @ -14,11 +14,12 @@ from erpnext.stock.doctype.delivery_trip.delivery_trip import ( | ||||
| 	make_expense_claim, | ||||
| 	notify_customers, | ||||
| ) | ||||
| from erpnext.tests.utils import create_test_contact_and_address | ||||
| from erpnext.tests.utils import ERPNextTestCase, create_test_contact_and_address | ||||
| 
 | ||||
| 
 | ||||
| class TestDeliveryTrip(unittest.TestCase): | ||||
| class TestDeliveryTrip(ERPNextTestCase): | ||||
| 	def setUp(self): | ||||
| 		super().setUp() | ||||
| 		driver = create_driver() | ||||
| 		create_vehicle() | ||||
| 		create_delivery_notification() | ||||
| @ -32,6 +33,7 @@ class TestDeliveryTrip(unittest.TestCase): | ||||
| 		frappe.db.sql("delete from `tabVehicle`") | ||||
| 		frappe.db.sql("delete from `tabEmail Template`") | ||||
| 		frappe.db.sql("delete from `tabDelivery Trip`") | ||||
| 		return super().tearDown() | ||||
| 
 | ||||
| 	def test_expense_claim_fields_are_fetched_properly(self): | ||||
| 		expense_claim = make_expense_claim(self.delivery_trip.name) | ||||
|  | ||||
| @ -4,7 +4,6 @@ | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import json | ||||
| import unittest | ||||
| 
 | ||||
| import frappe | ||||
| from frappe.test_runner import make_test_objects | ||||
| @ -25,7 +24,7 @@ from erpnext.stock.doctype.item.item import ( | ||||
| ) | ||||
| from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry | ||||
| from erpnext.stock.get_item_details import get_item_details | ||||
| from erpnext.tests.utils import change_settings | ||||
| from erpnext.tests.utils import ERPNextTestCase, change_settings | ||||
| 
 | ||||
| test_ignore = ["BOM"] | ||||
| test_dependencies = ["Warehouse", "Item Group", "Item Tax Template", "Brand", "Item Attribute"] | ||||
| @ -53,8 +52,9 @@ def make_item(item_code, properties=None): | ||||
| 
 | ||||
| 	return item | ||||
| 
 | ||||
| class TestItem(unittest.TestCase): | ||||
| class TestItem(ERPNextTestCase): | ||||
| 	def setUp(self): | ||||
| 		super().setUp() | ||||
| 		frappe.flags.attribute_values = None | ||||
| 
 | ||||
| 	def get_item(self, idx): | ||||
|  | ||||
| @ -4,7 +4,6 @@ | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import json | ||||
| import unittest | ||||
| 
 | ||||
| import frappe | ||||
| from frappe.utils import flt | ||||
| @ -21,10 +20,12 @@ from erpnext.stock.doctype.item.test_item import create_item | ||||
| from erpnext.stock.doctype.stock_reconciliation.test_stock_reconciliation import ( | ||||
| 	create_stock_reconciliation, | ||||
| ) | ||||
| from erpnext.tests.utils import ERPNextTestCase | ||||
| 
 | ||||
| 
 | ||||
| class TestItemAlternative(unittest.TestCase): | ||||
| class TestItemAlternative(ERPNextTestCase): | ||||
| 	def setUp(self): | ||||
| 		super().setUp() | ||||
| 		make_items() | ||||
| 
 | ||||
| 	def test_alternative_item_for_subcontract_rm(self): | ||||
|  | ||||
| @ -3,17 +3,17 @@ | ||||
| 
 | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import unittest | ||||
| 
 | ||||
| import frappe | ||||
| 
 | ||||
| test_records = frappe.get_test_records('Item Attribute') | ||||
| 
 | ||||
| from erpnext.stock.doctype.item_attribute.item_attribute import ItemAttributeIncrementError | ||||
| from erpnext.tests.utils import ERPNextTestCase | ||||
| 
 | ||||
| 
 | ||||
| class TestItemAttribute(unittest.TestCase): | ||||
| class TestItemAttribute(ERPNextTestCase): | ||||
| 	def setUp(self): | ||||
| 		super().setUp() | ||||
| 		if frappe.db.exists("Item Attribute", "_Test_Length"): | ||||
| 			frappe.delete_doc("Item Attribute", "_Test_Length") | ||||
| 
 | ||||
|  | ||||
| @ -3,17 +3,17 @@ | ||||
| 
 | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import unittest | ||||
| 
 | ||||
| import frappe | ||||
| from frappe.test_runner import make_test_records_for_doctype | ||||
| 
 | ||||
| from erpnext.stock.doctype.item_price.item_price import ItemPriceDuplicateItem | ||||
| from erpnext.stock.get_item_details import get_price_list_rate_for, process_args | ||||
| from erpnext.tests.utils import ERPNextTestCase | ||||
| 
 | ||||
| 
 | ||||
| class TestItemPrice(unittest.TestCase): | ||||
| class TestItemPrice(ERPNextTestCase): | ||||
| 	def setUp(self): | ||||
| 		super().setUp() | ||||
| 		frappe.db.sql("delete from `tabItem Price`") | ||||
| 		make_test_records_for_doctype("Item Price", force=True) | ||||
| 
 | ||||
|  | ||||
| @ -4,8 +4,6 @@ | ||||
| 
 | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import unittest | ||||
| 
 | ||||
| import frappe | ||||
| from frappe.utils import flt | ||||
| 
 | ||||
| @ -16,9 +14,10 @@ from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import ( | ||||
| 	get_gl_entries, | ||||
| 	make_purchase_receipt, | ||||
| ) | ||||
| from erpnext.tests.utils import ERPNextTestCase | ||||
| 
 | ||||
| 
 | ||||
| class TestLandedCostVoucher(unittest.TestCase): | ||||
| class TestLandedCostVoucher(ERPNextTestCase): | ||||
| 	def test_landed_cost_voucher(self): | ||||
| 		frappe.db.set_value("Buying Settings", None, "allow_multiple_items", 1) | ||||
| 
 | ||||
|  | ||||
| @ -6,8 +6,6 @@ | ||||
| 
 | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import unittest | ||||
| 
 | ||||
| import frappe | ||||
| from frappe.utils import flt, today | ||||
| 
 | ||||
| @ -18,9 +16,10 @@ from erpnext.stock.doctype.material_request.material_request import ( | ||||
| 	make_supplier_quotation, | ||||
| 	raise_work_orders, | ||||
| ) | ||||
| from erpnext.tests.utils import ERPNextTestCase | ||||
| 
 | ||||
| 
 | ||||
| class TestMaterialRequest(unittest.TestCase): | ||||
| class TestMaterialRequest(ERPNextTestCase): | ||||
| 	def test_make_purchase_order(self): | ||||
| 		mr = frappe.copy_doc(test_records[0]).insert() | ||||
| 
 | ||||
|  | ||||
| @ -6,6 +6,8 @@ from __future__ import unicode_literals | ||||
| import unittest | ||||
| 
 | ||||
| # test_records = frappe.get_test_records('Packing Slip') | ||||
| from erpnext.tests.utils import ERPNextTestCase | ||||
| 
 | ||||
| 
 | ||||
| class TestPackingSlip(unittest.TestCase): | ||||
| 	pass | ||||
|  | ||||
| @ -3,8 +3,6 @@ | ||||
| # See license.txt | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import unittest | ||||
| 
 | ||||
| import frappe | ||||
| 
 | ||||
| test_dependencies = ['Item', 'Sales Invoice', 'Stock Entry', 'Batch'] | ||||
| @ -15,9 +13,10 @@ from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import make_pu | ||||
| from erpnext.stock.doctype.stock_reconciliation.stock_reconciliation import ( | ||||
| 	EmptyStockReconciliationItemsError, | ||||
| ) | ||||
| from erpnext.tests.utils import ERPNextTestCase | ||||
| 
 | ||||
| 
 | ||||
| class TestPickList(unittest.TestCase): | ||||
| class TestPickList(ERPNextTestCase): | ||||
| 
 | ||||
| 	def test_pick_list_picks_warehouse_for_each_item(self): | ||||
| 		try: | ||||
|  | ||||
| @ -17,9 +17,10 @@ from erpnext.stock.doctype.purchase_receipt.purchase_receipt import make_purchas | ||||
| from erpnext.stock.doctype.serial_no.serial_no import SerialNoDuplicateError, get_serial_nos | ||||
| from erpnext.stock.doctype.warehouse.test_warehouse import create_warehouse | ||||
| from erpnext.stock.stock_ledger import SerialNoExistsInFutureTransaction | ||||
| from erpnext.tests.utils import ERPNextTestCase | ||||
| 
 | ||||
| 
 | ||||
| class TestPurchaseReceipt(unittest.TestCase): | ||||
| class TestPurchaseReceipt(ERPNextTestCase): | ||||
| 	def setUp(self): | ||||
| 		frappe.db.set_value("Buying Settings", None, "allow_multiple_items", 1) | ||||
| 
 | ||||
|  | ||||
| @ -3,8 +3,6 @@ | ||||
| # See license.txt | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import unittest | ||||
| 
 | ||||
| import frappe | ||||
| 
 | ||||
| from erpnext.stock.doctype.batch.test_batch import make_new_batch | ||||
| @ -13,9 +11,10 @@ from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import make_pu | ||||
| from erpnext.stock.doctype.stock_entry.test_stock_entry import make_stock_entry | ||||
| from erpnext.stock.doctype.warehouse.test_warehouse import create_warehouse | ||||
| from erpnext.stock.get_item_details import get_conversion_factor | ||||
| from erpnext.tests.utils import ERPNextTestCase | ||||
| 
 | ||||
| 
 | ||||
| class TestPutawayRule(unittest.TestCase): | ||||
| class TestPutawayRule(ERPNextTestCase): | ||||
| 	def setUp(self): | ||||
| 		if not frappe.db.exists("Item", "_Rice"): | ||||
| 			make_item("_Rice", { | ||||
|  | ||||
| @ -1,8 +1,6 @@ | ||||
| # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and Contributors | ||||
| # See license.txt | ||||
| 
 | ||||
| import unittest | ||||
| 
 | ||||
| import frappe | ||||
| from frappe.utils import nowdate | ||||
| 
 | ||||
| @ -15,12 +13,14 @@ from erpnext.controllers.stock_controller import ( | ||||
| from erpnext.stock.doctype.delivery_note.test_delivery_note import create_delivery_note | ||||
| from erpnext.stock.doctype.item.test_item import create_item | ||||
| from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry | ||||
| from erpnext.tests.utils import ERPNextTestCase | ||||
| 
 | ||||
| # test_records = frappe.get_test_records('Quality Inspection') | ||||
| 
 | ||||
| 
 | ||||
| class TestQualityInspection(unittest.TestCase): | ||||
| class TestQualityInspection(ERPNextTestCase): | ||||
| 	def setUp(self): | ||||
| 		super().setUp() | ||||
| 		create_item("_Test Item with QA") | ||||
| 		frappe.db.set_value( | ||||
| 			"Item", "_Test Item with QA", "inspection_required_before_delivery", 1 | ||||
|  | ||||
| @ -6,8 +6,6 @@ | ||||
| 
 | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import unittest | ||||
| 
 | ||||
| import frappe | ||||
| 
 | ||||
| from erpnext.stock.doctype.delivery_note.test_delivery_note import create_delivery_note | ||||
| @ -20,9 +18,10 @@ test_dependencies = ["Item"] | ||||
| test_records = frappe.get_test_records('Serial No') | ||||
| 
 | ||||
| from erpnext.stock.doctype.serial_no.serial_no import * | ||||
| from erpnext.tests.utils import ERPNextTestCase | ||||
| 
 | ||||
| 
 | ||||
| class TestSerialNo(unittest.TestCase): | ||||
| class TestSerialNo(ERPNextTestCase): | ||||
| 	def test_cannot_create_direct(self): | ||||
| 		frappe.delete_doc_if_exists("Serial No", "_TCSER0001") | ||||
| 
 | ||||
|  | ||||
| @ -3,15 +3,15 @@ | ||||
| # See license.txt | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import unittest | ||||
| from datetime import date, timedelta | ||||
| 
 | ||||
| import frappe | ||||
| 
 | ||||
| from erpnext.stock.doctype.delivery_note.delivery_note import make_shipment | ||||
| from erpnext.tests.utils import ERPNextTestCase | ||||
| 
 | ||||
| 
 | ||||
| class TestShipment(unittest.TestCase): | ||||
| class TestShipment(ERPNextTestCase): | ||||
| 	def test_shipment_from_delivery_note(self): | ||||
| 		delivery_note = create_test_delivery_note() | ||||
| 		delivery_note.submit() | ||||
| @ -47,7 +47,6 @@ def create_test_delivery_note(): | ||||
| 		} | ||||
| 	) | ||||
| 	delivery_note.insert() | ||||
| 	frappe.db.commit() | ||||
| 	return delivery_note | ||||
| 
 | ||||
| 
 | ||||
| @ -91,7 +90,6 @@ def create_test_shipment(delivery_notes = None): | ||||
| 		} | ||||
| 	) | ||||
| 	shipment.insert() | ||||
| 	frappe.db.commit() | ||||
| 	return shipment | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -3,8 +3,6 @@ | ||||
| # See license.txt | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import unittest | ||||
| 
 | ||||
| import frappe | ||||
| from frappe.core.page.permission_manager.permission_manager import reset | ||||
| from frappe.utils import add_days, today | ||||
| @ -21,9 +19,10 @@ from erpnext.stock.doctype.stock_reconciliation.test_stock_reconciliation import | ||||
| 	create_stock_reconciliation, | ||||
| ) | ||||
| from erpnext.stock.stock_ledger import get_previous_sle | ||||
| from erpnext.tests.utils import ERPNextTestCase | ||||
| 
 | ||||
| 
 | ||||
| class TestStockLedgerEntry(unittest.TestCase): | ||||
| class TestStockLedgerEntry(ERPNextTestCase): | ||||
| 	def setUp(self): | ||||
| 		items = create_items() | ||||
| 		reset('Stock Entry') | ||||
|  | ||||
| @ -6,8 +6,6 @@ | ||||
| 
 | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import unittest | ||||
| 
 | ||||
| import frappe | ||||
| from frappe.utils import add_days, flt, nowdate, nowtime, random_string | ||||
| 
 | ||||
| @ -22,12 +20,13 @@ from erpnext.stock.doctype.stock_reconciliation.stock_reconciliation import ( | ||||
| from erpnext.stock.doctype.warehouse.test_warehouse import create_warehouse | ||||
| from erpnext.stock.stock_ledger import get_previous_sle, update_entries_after | ||||
| from erpnext.stock.utils import get_incoming_rate, get_stock_value_on, get_valuation_method | ||||
| from erpnext.tests.utils import change_settings | ||||
| from erpnext.tests.utils import ERPNextTestCase, change_settings | ||||
| 
 | ||||
| 
 | ||||
| class TestStockReconciliation(unittest.TestCase): | ||||
| class TestStockReconciliation(ERPNextTestCase): | ||||
| 	@classmethod | ||||
| 	def setUpClass(self): | ||||
| 		super().setUpClass() | ||||
| 		create_batch_or_serial_no_items() | ||||
| 		frappe.db.set_value("Stock Settings", None, "allow_negative_stock", 1) | ||||
| 
 | ||||
| @ -372,7 +371,6 @@ class TestStockReconciliation(unittest.TestCase): | ||||
| 		""" | ||||
| 		from erpnext.stock.doctype.delivery_note.test_delivery_note import create_delivery_note | ||||
| 		from erpnext.stock.stock_ledger import NegativeStockError | ||||
| 		frappe.db.commit() | ||||
| 
 | ||||
| 		item_code = "Backdated-Reco-Cancellation-Item" | ||||
| 		warehouse = "_Test Warehouse - _TC" | ||||
| @ -395,10 +393,6 @@ class TestStockReconciliation(unittest.TestCase): | ||||
| 		repost_exists = bool(frappe.db.exists("Repost Item Valuation", {"voucher_no": sr.name})) | ||||
| 		self.assertFalse(repost_exists, msg="Negative stock validation not working on reco cancellation") | ||||
| 
 | ||||
| 		# teardown | ||||
| 		frappe.db.rollback() | ||||
| 
 | ||||
| 
 | ||||
| 	def test_valid_batch(self): | ||||
| 		create_batch_item_with_batch("Testing Batch Item 1", "001") | ||||
| 		create_batch_item_with_batch("Testing Batch Item 2", "002") | ||||
|  | ||||
| @ -7,9 +7,12 @@ import unittest | ||||
| 
 | ||||
| import frappe | ||||
| 
 | ||||
| from erpnext.tests.utils import ERPNextTestCase | ||||
| 
 | ||||
| class TestStockSettings(unittest.TestCase): | ||||
| 
 | ||||
| class TestStockSettings(ERPNextTestCase): | ||||
| 	def setUp(self): | ||||
| 		super().setUp() | ||||
| 		frappe.db.set_value("Stock Settings", None, "clean_description_html", 0) | ||||
| 
 | ||||
| 	def test_settings(self): | ||||
|  | ||||
| @ -2,8 +2,6 @@ | ||||
| # License: GNU General Public License v3. See license.txt | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import unittest | ||||
| 
 | ||||
| import frappe | ||||
| from frappe.test_runner import make_test_records | ||||
| from frappe.utils import cint | ||||
| @ -12,11 +10,13 @@ import erpnext | ||||
| from erpnext.accounts.doctype.account.test_account import create_account, get_inventory_account | ||||
| from erpnext.stock.doctype.item.test_item import create_item | ||||
| from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry | ||||
| from erpnext.tests.utils import ERPNextTestCase | ||||
| 
 | ||||
| test_records = frappe.get_test_records('Warehouse') | ||||
| 
 | ||||
| class TestWarehouse(unittest.TestCase): | ||||
| class TestWarehouse(ERPNextTestCase): | ||||
| 	def setUp(self): | ||||
| 		super().setUp() | ||||
| 		if not frappe.get_value('Item', '_Test Item'): | ||||
| 			make_test_records('Item') | ||||
| 
 | ||||
|  | ||||
| @ -5,9 +5,10 @@ from frappe import _dict | ||||
| 
 | ||||
| from erpnext.accounts.utils import get_fiscal_year | ||||
| from erpnext.stock.report.stock_analytics.stock_analytics import get_period_date_ranges | ||||
| from erpnext.tests.utils import ERPNextTestCase | ||||
| 
 | ||||
| 
 | ||||
| class TestStockAnalyticsReport(unittest.TestCase): | ||||
| class TestStockAnalyticsReport(ERPNextTestCase): | ||||
| 	def test_get_period_date_ranges(self): | ||||
| 
 | ||||
| 		filters = _dict(range="Monthly", from_date="2020-12-28", to_date="2021-02-06") | ||||
|  | ||||
| @ -2,6 +2,7 @@ | ||||
| # License: GNU General Public License v3. See license.txt | ||||
| 
 | ||||
| import copy | ||||
| import unittest | ||||
| from contextlib import contextmanager | ||||
| from typing import Any, Dict, NewType, Optional | ||||
| 
 | ||||
| @ -12,6 +13,21 @@ ReportFilters = Dict[str, Any] | ||||
| ReportName = NewType("ReportName", str) | ||||
| 
 | ||||
| 
 | ||||
| class ERPNextTestCase(unittest.TestCase): | ||||
| 	"""A sane default test class for ERPNext tests.""" | ||||
| 
 | ||||
| 
 | ||||
| 	@classmethod | ||||
| 	def setUpClass(cls) -> None: | ||||
| 		frappe.db.commit() | ||||
| 		return super().setUpClass() | ||||
| 
 | ||||
| 	@classmethod | ||||
| 	def tearDownClass(cls) -> None: | ||||
| 		frappe.db.rollback() | ||||
| 		return super().tearDownClass() | ||||
| 
 | ||||
| 
 | ||||
| def create_test_contact_and_address(): | ||||
| 	frappe.db.sql('delete from tabContact') | ||||
| 	frappe.db.sql('delete from `tabContact Email`') | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user