mirror of
https://github.com/frappe/erpnext.git
synced 2026-09-19 19:37:56 +00:00
style: format code with black
This commit is contained in:
@@ -12,11 +12,12 @@ from erpnext.stock.doctype.quality_inspection.test_quality_inspection import (
|
||||
|
||||
class TestItemVariant(unittest.TestCase):
|
||||
def test_tables_in_template_copied_to_variant(self):
|
||||
fields = [{'field_name': 'quality_inspection_template'}]
|
||||
fields = [{"field_name": "quality_inspection_template"}]
|
||||
set_item_variant_settings(fields)
|
||||
variant = make_item_variant()
|
||||
self.assertEqual(variant.get("quality_inspection_template"), "_Test QC Template")
|
||||
|
||||
|
||||
def create_variant_with_tables(item, args):
|
||||
if isinstance(args, str):
|
||||
args = json.loads(args)
|
||||
@@ -27,14 +28,11 @@ def create_variant_with_tables(item, args):
|
||||
template.save()
|
||||
|
||||
variant = frappe.new_doc("Item")
|
||||
variant.variant_based_on = 'Item Attribute'
|
||||
variant.variant_based_on = "Item Attribute"
|
||||
variant_attributes = []
|
||||
|
||||
for d in template.attributes:
|
||||
variant_attributes.append({
|
||||
"attribute": d.attribute,
|
||||
"attribute_value": args.get(d.attribute)
|
||||
})
|
||||
variant_attributes.append({"attribute": d.attribute, "attribute_value": args.get(d.attribute)})
|
||||
|
||||
variant.set("attributes", variant_attributes)
|
||||
copy_attributes_to_variant(template, variant)
|
||||
@@ -42,6 +40,7 @@ def create_variant_with_tables(item, args):
|
||||
|
||||
return variant
|
||||
|
||||
|
||||
def make_item_variant():
|
||||
frappe.delete_doc_if_exists("Item", "_Test Variant Item-XSL", force=1)
|
||||
variant = create_variant_with_tables("_Test Variant Item", '{"Test Size": "Extra Small"}')
|
||||
@@ -50,6 +49,7 @@ def make_item_variant():
|
||||
variant.save()
|
||||
return variant
|
||||
|
||||
|
||||
def make_quality_inspection_template():
|
||||
qc_template = "_Test QC Template"
|
||||
if frappe.db.exists("Quality Inspection Template", qc_template):
|
||||
@@ -59,10 +59,13 @@ def make_quality_inspection_template():
|
||||
qc.quality_inspection_template_name = qc_template
|
||||
|
||||
create_quality_inspection_parameter("Moisture")
|
||||
qc.append('item_quality_inspection_parameter', {
|
||||
"specification": "Moisture",
|
||||
"value": "< 5%",
|
||||
})
|
||||
qc.append(
|
||||
"item_quality_inspection_parameter",
|
||||
{
|
||||
"specification": "Moisture",
|
||||
"value": "< 5%",
|
||||
},
|
||||
)
|
||||
|
||||
qc.insert()
|
||||
return qc.name
|
||||
|
||||
@@ -10,14 +10,14 @@ from frappe.utils import add_months, nowdate
|
||||
|
||||
class TestMapper(unittest.TestCase):
|
||||
def test_map_docs(self):
|
||||
'''Test mapping of multiple source docs on a single target doc'''
|
||||
"""Test mapping of multiple source docs on a single target doc"""
|
||||
|
||||
make_test_records("Item")
|
||||
items = ['_Test Item', '_Test Item 2', '_Test FG Item']
|
||||
items = ["_Test Item", "_Test Item 2", "_Test FG Item"]
|
||||
|
||||
# Make source docs (quotations) and a target doc (sales order)
|
||||
qtn1, item_list_1 = self.make_quotation(items, '_Test Customer')
|
||||
qtn2, item_list_2 = self.make_quotation(items, '_Test Customer')
|
||||
qtn1, item_list_1 = self.make_quotation(items, "_Test Customer")
|
||||
qtn2, item_list_2 = self.make_quotation(items, "_Test Customer")
|
||||
so, item_list_3 = self.make_sales_order()
|
||||
|
||||
# Map source docs to target with corresponding mapper method
|
||||
@@ -26,20 +26,20 @@ class TestMapper(unittest.TestCase):
|
||||
|
||||
# Assert that all inserted items are present in updated sales order
|
||||
src_items = item_list_1 + item_list_2 + item_list_3
|
||||
self.assertEqual(set(d for d in src_items),
|
||||
set(d.item_code for d in updated_so.items))
|
||||
|
||||
self.assertEqual(set(d for d in src_items), set(d.item_code for d in updated_so.items))
|
||||
|
||||
def make_quotation(self, item_list, customer):
|
||||
|
||||
qtn = frappe.get_doc({
|
||||
"doctype": "Quotation",
|
||||
"quotation_to": "Customer",
|
||||
"party_name": customer,
|
||||
"order_type": "Sales",
|
||||
"transaction_date" : nowdate(),
|
||||
"valid_till" : add_months(nowdate(), 1)
|
||||
})
|
||||
qtn = frappe.get_doc(
|
||||
{
|
||||
"doctype": "Quotation",
|
||||
"quotation_to": "Customer",
|
||||
"party_name": customer,
|
||||
"order_type": "Sales",
|
||||
"transaction_date": nowdate(),
|
||||
"valid_till": add_months(nowdate(), 1),
|
||||
}
|
||||
)
|
||||
for item in item_list:
|
||||
qtn.append("items", {"qty": "2", "item_code": item})
|
||||
|
||||
@@ -47,21 +47,23 @@ class TestMapper(unittest.TestCase):
|
||||
return qtn, item_list
|
||||
|
||||
def make_sales_order(self):
|
||||
item = frappe.get_doc({
|
||||
"base_amount": 1000.0,
|
||||
"base_rate": 100.0,
|
||||
"description": "CPU",
|
||||
"doctype": "Sales Order Item",
|
||||
"item_code": "_Test Item",
|
||||
"item_name": "CPU",
|
||||
"parentfield": "items",
|
||||
"qty": 10.0,
|
||||
"rate": 100.0,
|
||||
"warehouse": "_Test Warehouse - _TC",
|
||||
"stock_uom": "_Test UOM",
|
||||
"conversion_factor": 1.0,
|
||||
"uom": "_Test UOM"
|
||||
})
|
||||
so = frappe.get_doc(frappe.get_test_records('Sales Order')[0])
|
||||
item = frappe.get_doc(
|
||||
{
|
||||
"base_amount": 1000.0,
|
||||
"base_rate": 100.0,
|
||||
"description": "CPU",
|
||||
"doctype": "Sales Order Item",
|
||||
"item_code": "_Test Item",
|
||||
"item_name": "CPU",
|
||||
"parentfield": "items",
|
||||
"qty": 10.0,
|
||||
"rate": 100.0,
|
||||
"warehouse": "_Test Warehouse - _TC",
|
||||
"stock_uom": "_Test UOM",
|
||||
"conversion_factor": 1.0,
|
||||
"uom": "_Test UOM",
|
||||
}
|
||||
)
|
||||
so = frappe.get_doc(frappe.get_test_records("Sales Order")[0])
|
||||
so.insert(ignore_permissions=True)
|
||||
return so, [item.item_code]
|
||||
|
||||
@@ -5,104 +5,131 @@ import frappe
|
||||
|
||||
|
||||
def uuid4():
|
||||
return str(_uuid4())
|
||||
return str(_uuid4())
|
||||
|
||||
|
||||
class TestTaxes(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.company = frappe.get_doc({
|
||||
'doctype': 'Company',
|
||||
'company_name': uuid4(),
|
||||
'abbr': ''.join(s[0] for s in uuid4().split('-')),
|
||||
'default_currency': 'USD',
|
||||
'country': 'United States',
|
||||
}).insert()
|
||||
self.account = frappe.get_doc({
|
||||
'doctype': 'Account',
|
||||
'account_name': uuid4(),
|
||||
'account_type': 'Tax',
|
||||
'company': self.company.name,
|
||||
'parent_account': 'Duties and Taxes - {self.company.abbr}'.format(self=self)
|
||||
}).insert()
|
||||
self.item_group = frappe.get_doc({
|
||||
'doctype': 'Item Group',
|
||||
'item_group_name': uuid4(),
|
||||
'parent_item_group': 'All Item Groups',
|
||||
}).insert()
|
||||
self.item_tax_template = frappe.get_doc({
|
||||
'doctype': 'Item Tax Template',
|
||||
'title': uuid4(),
|
||||
'company': self.company.name,
|
||||
'taxes': [
|
||||
{
|
||||
'tax_type': self.account.name,
|
||||
'tax_rate': 2,
|
||||
}
|
||||
]
|
||||
}).insert()
|
||||
self.item = frappe.get_doc({
|
||||
'doctype': 'Item',
|
||||
'item_code': uuid4(),
|
||||
'item_group': self.item_group.name,
|
||||
'is_stock_item': 0,
|
||||
'taxes': [
|
||||
{
|
||||
'item_tax_template': self.item_tax_template.name,
|
||||
'tax_category': '',
|
||||
}
|
||||
],
|
||||
}).insert()
|
||||
self.customer = frappe.get_doc({
|
||||
'doctype': 'Customer',
|
||||
'customer_name': uuid4(),
|
||||
'customer_group': 'All Customer Groups',
|
||||
}).insert()
|
||||
self.supplier = frappe.get_doc({
|
||||
'doctype': 'Supplier',
|
||||
'supplier_name': uuid4(),
|
||||
'supplier_group': 'All Supplier Groups',
|
||||
}).insert()
|
||||
def setUp(self):
|
||||
self.company = frappe.get_doc(
|
||||
{
|
||||
"doctype": "Company",
|
||||
"company_name": uuid4(),
|
||||
"abbr": "".join(s[0] for s in uuid4().split("-")),
|
||||
"default_currency": "USD",
|
||||
"country": "United States",
|
||||
}
|
||||
).insert()
|
||||
self.account = frappe.get_doc(
|
||||
{
|
||||
"doctype": "Account",
|
||||
"account_name": uuid4(),
|
||||
"account_type": "Tax",
|
||||
"company": self.company.name,
|
||||
"parent_account": "Duties and Taxes - {self.company.abbr}".format(self=self),
|
||||
}
|
||||
).insert()
|
||||
self.item_group = frappe.get_doc(
|
||||
{
|
||||
"doctype": "Item Group",
|
||||
"item_group_name": uuid4(),
|
||||
"parent_item_group": "All Item Groups",
|
||||
}
|
||||
).insert()
|
||||
self.item_tax_template = frappe.get_doc(
|
||||
{
|
||||
"doctype": "Item Tax Template",
|
||||
"title": uuid4(),
|
||||
"company": self.company.name,
|
||||
"taxes": [
|
||||
{
|
||||
"tax_type": self.account.name,
|
||||
"tax_rate": 2,
|
||||
}
|
||||
],
|
||||
}
|
||||
).insert()
|
||||
self.item = frappe.get_doc(
|
||||
{
|
||||
"doctype": "Item",
|
||||
"item_code": uuid4(),
|
||||
"item_group": self.item_group.name,
|
||||
"is_stock_item": 0,
|
||||
"taxes": [
|
||||
{
|
||||
"item_tax_template": self.item_tax_template.name,
|
||||
"tax_category": "",
|
||||
}
|
||||
],
|
||||
}
|
||||
).insert()
|
||||
self.customer = frappe.get_doc(
|
||||
{
|
||||
"doctype": "Customer",
|
||||
"customer_name": uuid4(),
|
||||
"customer_group": "All Customer Groups",
|
||||
}
|
||||
).insert()
|
||||
self.supplier = frappe.get_doc(
|
||||
{
|
||||
"doctype": "Supplier",
|
||||
"supplier_name": uuid4(),
|
||||
"supplier_group": "All Supplier Groups",
|
||||
}
|
||||
).insert()
|
||||
|
||||
def test_taxes(self):
|
||||
self.created_docs = []
|
||||
for dt in ['Purchase Order', 'Purchase Receipt', 'Purchase Invoice',
|
||||
'Quotation', 'Sales Order', 'Delivery Note', 'Sales Invoice']:
|
||||
doc = frappe.get_doc({
|
||||
'doctype': dt,
|
||||
'company': self.company.name,
|
||||
'supplier': self.supplier.name,
|
||||
'currency': "USD",
|
||||
'schedule_date': frappe.utils.nowdate(),
|
||||
'delivery_date': frappe.utils.nowdate(),
|
||||
'customer': self.customer.name,
|
||||
'buying_price_list' if dt.startswith('Purchase') else 'selling_price_list'
|
||||
: 'Standard Buying' if dt.startswith('Purchase') else 'Standard Selling',
|
||||
'items': [
|
||||
{
|
||||
'item_code': self.item.name,
|
||||
'qty': 300,
|
||||
'rate': 100,
|
||||
}
|
||||
],
|
||||
'taxes': [
|
||||
{
|
||||
'charge_type': 'On Item Quantity',
|
||||
'account_head': self.account.name,
|
||||
'description': 'N/A',
|
||||
'rate': 0,
|
||||
},
|
||||
],
|
||||
})
|
||||
doc.run_method('set_missing_values')
|
||||
doc.run_method('calculate_taxes_and_totals')
|
||||
doc.insert()
|
||||
self.assertEqual(doc.taxes[0].tax_amount, 600)
|
||||
self.created_docs.append(doc)
|
||||
def test_taxes(self):
|
||||
self.created_docs = []
|
||||
for dt in [
|
||||
"Purchase Order",
|
||||
"Purchase Receipt",
|
||||
"Purchase Invoice",
|
||||
"Quotation",
|
||||
"Sales Order",
|
||||
"Delivery Note",
|
||||
"Sales Invoice",
|
||||
]:
|
||||
doc = frappe.get_doc(
|
||||
{
|
||||
"doctype": dt,
|
||||
"company": self.company.name,
|
||||
"supplier": self.supplier.name,
|
||||
"currency": "USD",
|
||||
"schedule_date": frappe.utils.nowdate(),
|
||||
"delivery_date": frappe.utils.nowdate(),
|
||||
"customer": self.customer.name,
|
||||
"buying_price_list"
|
||||
if dt.startswith("Purchase")
|
||||
else "selling_price_list": "Standard Buying"
|
||||
if dt.startswith("Purchase")
|
||||
else "Standard Selling",
|
||||
"items": [
|
||||
{
|
||||
"item_code": self.item.name,
|
||||
"qty": 300,
|
||||
"rate": 100,
|
||||
}
|
||||
],
|
||||
"taxes": [
|
||||
{
|
||||
"charge_type": "On Item Quantity",
|
||||
"account_head": self.account.name,
|
||||
"description": "N/A",
|
||||
"rate": 0,
|
||||
},
|
||||
],
|
||||
}
|
||||
)
|
||||
doc.run_method("set_missing_values")
|
||||
doc.run_method("calculate_taxes_and_totals")
|
||||
doc.insert()
|
||||
self.assertEqual(doc.taxes[0].tax_amount, 600)
|
||||
self.created_docs.append(doc)
|
||||
|
||||
def tearDown(self):
|
||||
for doc in self.created_docs:
|
||||
doc.delete()
|
||||
self.item.delete()
|
||||
self.item_group.delete()
|
||||
self.item_tax_template.delete()
|
||||
self.account.delete()
|
||||
self.company.delete()
|
||||
def tearDown(self):
|
||||
for doc in self.created_docs:
|
||||
doc.delete()
|
||||
self.item.delete()
|
||||
self.item_group.delete()
|
||||
self.item_tax_template.delete()
|
||||
self.account.delete()
|
||||
self.company.delete()
|
||||
|
||||
@@ -5,18 +5,28 @@ import frappe
|
||||
|
||||
class TestUtils(unittest.TestCase):
|
||||
def test_reset_default_field_value(self):
|
||||
doc = frappe.get_doc({
|
||||
"doctype": "Purchase Receipt",
|
||||
"set_warehouse": "Warehouse 1",
|
||||
})
|
||||
doc = frappe.get_doc(
|
||||
{
|
||||
"doctype": "Purchase Receipt",
|
||||
"set_warehouse": "Warehouse 1",
|
||||
}
|
||||
)
|
||||
|
||||
# Same values
|
||||
doc.items = [{"warehouse": "Warehouse 1"}, {"warehouse": "Warehouse 1"}, {"warehouse": "Warehouse 1"}]
|
||||
doc.items = [
|
||||
{"warehouse": "Warehouse 1"},
|
||||
{"warehouse": "Warehouse 1"},
|
||||
{"warehouse": "Warehouse 1"},
|
||||
]
|
||||
doc.reset_default_field_value("set_warehouse", "items", "warehouse")
|
||||
self.assertEqual(doc.set_warehouse, "Warehouse 1")
|
||||
|
||||
# Mixed values
|
||||
doc.items = [{"warehouse": "Warehouse 1"}, {"warehouse": "Warehouse 2"}, {"warehouse": "Warehouse 1"}]
|
||||
doc.items = [
|
||||
{"warehouse": "Warehouse 1"},
|
||||
{"warehouse": "Warehouse 2"},
|
||||
{"warehouse": "Warehouse 1"},
|
||||
]
|
||||
doc.reset_default_field_value("set_warehouse", "items", "warehouse")
|
||||
self.assertEqual(doc.set_warehouse, None)
|
||||
|
||||
@@ -30,9 +40,13 @@ class TestUtils(unittest.TestCase):
|
||||
from_warehouse="_Test Warehouse - _TC",
|
||||
to_warehouse="_Test Warehouse 1 - _TC",
|
||||
items=[
|
||||
frappe._dict(item_code="_Test Item", qty=1, basic_rate=200, s_warehouse="_Test Warehouse - _TC"),
|
||||
frappe._dict(item_code="_Test FG Item", qty=4, t_warehouse="_Test Warehouse 1 - _TC", is_finished_item=1)
|
||||
]
|
||||
frappe._dict(
|
||||
item_code="_Test Item", qty=1, basic_rate=200, s_warehouse="_Test Warehouse - _TC"
|
||||
),
|
||||
frappe._dict(
|
||||
item_code="_Test FG Item", qty=4, t_warehouse="_Test Warehouse 1 - _TC", is_finished_item=1
|
||||
),
|
||||
],
|
||||
)
|
||||
se.save()
|
||||
|
||||
@@ -43,18 +57,20 @@ class TestUtils(unittest.TestCase):
|
||||
se.delete()
|
||||
|
||||
def test_reset_default_field_value_in_transfer_stock_entry(self):
|
||||
doc = frappe.get_doc({
|
||||
"doctype": "Stock Entry",
|
||||
"purpose": "Material Receipt",
|
||||
"from_warehouse": "Warehouse 1",
|
||||
"to_warehouse": "Warehouse 2",
|
||||
})
|
||||
doc = frappe.get_doc(
|
||||
{
|
||||
"doctype": "Stock Entry",
|
||||
"purpose": "Material Receipt",
|
||||
"from_warehouse": "Warehouse 1",
|
||||
"to_warehouse": "Warehouse 2",
|
||||
}
|
||||
)
|
||||
|
||||
# Same values
|
||||
doc.items = [
|
||||
{"s_warehouse": "Warehouse 1", "t_warehouse": "Warehouse 2"},
|
||||
{"s_warehouse": "Warehouse 1", "t_warehouse": "Warehouse 2"},
|
||||
{"s_warehouse": "Warehouse 1", "t_warehouse": "Warehouse 2"}
|
||||
{"s_warehouse": "Warehouse 1", "t_warehouse": "Warehouse 2"},
|
||||
]
|
||||
|
||||
doc.reset_default_field_value("from_warehouse", "items", "s_warehouse")
|
||||
@@ -66,10 +82,10 @@ class TestUtils(unittest.TestCase):
|
||||
doc.items = [
|
||||
{"s_warehouse": "Warehouse 1", "t_warehouse": "Warehouse 2"},
|
||||
{"s_warehouse": "Warehouse 3", "t_warehouse": "Warehouse 2"},
|
||||
{"s_warehouse": "Warehouse 1", "t_warehouse": "Warehouse 2"}
|
||||
{"s_warehouse": "Warehouse 1", "t_warehouse": "Warehouse 2"},
|
||||
]
|
||||
|
||||
doc.reset_default_field_value("from_warehouse", "items", "s_warehouse")
|
||||
doc.reset_default_field_value("to_warehouse", "items", "t_warehouse")
|
||||
self.assertEqual(doc.from_warehouse, None)
|
||||
self.assertEqual(doc.to_warehouse, "Warehouse 2")
|
||||
self.assertEqual(doc.to_warehouse, "Warehouse 2")
|
||||
|
||||
Reference in New Issue
Block a user