diff --git a/erpnext/crm/doctype/contract/test_contract.py b/erpnext/crm/doctype/contract/test_contract.py index 2b5c875d4d9..d5f4e71bffa 100644 --- a/erpnext/crm/doctype/contract/test_contract.py +++ b/erpnext/crm/doctype/contract/test_contract.py @@ -6,23 +6,13 @@ from __future__ import unicode_literals import unittest import frappe -from frappe.test_runner import make_test_records from frappe.utils import add_days, nowdate -contract_test_records = frappe.get_test_records('Contract') -make_test_records('Contract Template') -make_test_records("Customer", force=True) - - class TestContract(unittest.TestCase): + def setUp(self): - self.contract_doc = frappe.copy_doc(contract_test_records[0]) - - template_with_requirements = frappe.get_all("Contract Template", filters={"requires_fulfilment": 1}) - self.contract_template_with_requirements = template_with_requirements[0].name - - template_without_requirements = frappe.get_all("Contract Template", filters={"requires_fulfilment": 0}) - self.contract_template_without_requirements = template_without_requirements[0].name + frappe.db.sql("delete from `tabContract`") + self.contract_doc = get_contract() def test_validate_start_date_before_end_date(self): self.contract_doc.start_date = nowdate() @@ -32,7 +22,6 @@ class TestContract(unittest.TestCase): def test_unsigned_contract_status(self): self.contract_doc.insert() - self.assertEqual(self.contract_doc.status, "Unsigned") def test_active_signed_contract_status(self): @@ -60,28 +49,29 @@ class TestContract(unittest.TestCase): self.assertEqual(self.contract_doc.status, "Inactive") def test_contract_status_with_no_fulfilment_terms(self): - self.contract_doc.contract_terms = self.contract_template_without_requirements + self.contract_doc.contract_term = "_Test Customer Contract" self.contract_doc.insert() self.assertEqual(self.contract_doc.fulfilment_status, "N/A") def test_unfulfilled_contract_status(self): - self.contract_doc.contract_terms = self.contract_template_with_requirements + self.contract_doc.contract_term = "_Test Customer Contract with Requirements" + self.contract_doc.requires_fulfilment = 1 self.contract_doc.save() - self.contract_doc.insert() - - self.contract_doc.reload() - self.assertEqual(self.contract_doc.fulfilment_status, "Unfulfilled") def test_fulfilled_contract_status(self): - self.contract_doc.contract_terms = self.contract_template_with_requirements - self.contract_doc.save() - self.contract_doc.insert() - - self.contract_doc.reload() + self.contract_doc.contract_terms = "_Test Customer Contract with Requirements" # Mark all the terms as fulfilled + self.contract_doc.requires_fulfilment = 1 + fulfilment_terms = [] + fulfilment_terms.append({ + "requirement": "This is a test requirement.", + "fulfilled": 0 + }) + self.contract_doc.set("fulfilment_terms", fulfilment_terms) + for term in self.contract_doc.fulfilment_terms: term.fulfilled = 1 @@ -90,21 +80,40 @@ class TestContract(unittest.TestCase): self.assertEqual(self.contract_doc.fulfilment_status, "Fulfilled") def test_partially_fulfilled_contract_status(self): - self.contract_doc.contract_terms = self.contract_template_with_requirements - self.contract_doc.insert() - - self.contract_doc.reload() + self.contract_doc.contract_terms = "_Test Customer Contract with Requirements" + self.contract_doc.requires_fulfilment = 1 # Mark only the first term as fulfilled + self.contract_doc.save() + fulfilment_terms = [] + fulfilment_terms.append({ + "requirement": "This is a test requirement.", + "fulfilled": 0 + }) + fulfilment_terms.append({ + "requirement": "This is another test requirement.", + "fulfilled": 0 + }) + + self.contract_doc.set("fulfilment_terms", fulfilment_terms) self.contract_doc.fulfilment_terms[0].fulfilled = 1 self.contract_doc.save() self.assertEqual(self.contract_doc.fulfilment_status, "Partially Fulfilled") def test_lapsed_contract_status(self): - self.contract_doc.contract_terms = self.contract_template_with_requirements - self.contract_doc.insert() - - self.contract_doc.reload() + self.contract_doc.contract_term = "_Test Customer Contract with Requirements" + self.contract_doc.start_date = add_days(nowdate(), -2) + self.contract_doc.end_date = add_days(nowdate(), 1) + self.contract_doc.requires_fulfilment = 1 + self.contract_doc.fulfilment_deadline = add_days(nowdate(), -1) + self.contract_doc.save() self.assertEqual(self.contract_doc.fulfilment_status, "Lapsed") + +def get_contract(): + doc = frappe.new_doc("Contract") + doc.party_type = "Customer" + doc.party_name = "_Test Customer" + doc.contract_terms = "This is a test customer contract." + return doc diff --git a/erpnext/crm/doctype/contract/test_records.json b/erpnext/crm/doctype/contract/test_records.json deleted file mode 100644 index 23cc3bb82cb..00000000000 --- a/erpnext/crm/doctype/contract/test_records.json +++ /dev/null @@ -1,20 +0,0 @@ -[ - { - "doctype": "Contract", - "party_type": "Customer", - "party_name": "_Test Customer", - "contract_terms": "This is a test customer contract." - }, - { - "doctype": "Contract", - "party_type": "Supplier", - "party_name": "_Test Supplier", - "contract_terms": "This is a test supplier contract." - }, - { - "doctype": "Contract", - "party_type": "Employee", - "party_name": "_Test Employee", - "contract_terms": "This is a test employee contract." - } -] \ No newline at end of file diff --git a/erpnext/crm/doctype/contract_template/test_records.json b/erpnext/crm/doctype/contract_template/test_records.json deleted file mode 100644 index 341b1cf1073..00000000000 --- a/erpnext/crm/doctype/contract_template/test_records.json +++ /dev/null @@ -1,31 +0,0 @@ -[ - { - "doctype": "Contract Template", - "title": "_Test Customer Contract", - "contract_terms": "This is a test customer contract." - }, - { - "doctype": "Contract Template", - "title": "_Test Customer Contract with Requirements", - "contract_terms": "This is a test customer contract.", - "requires_fulfilment": 1, - "fulfilment_terms": [ - { - "requirement": "This is a test requirement." - }, - { - "requirement": "This is another test requirement." - } - ] - }, - { - "doctype": "Contract Template", - "title": "_Test Supplier Contract", - "contract_terms": "This is a test supplier contract." - }, - { - "doctype": "Contract Template", - "title": "_Test Employee Contract", - "contract_terms": "This is a test employee contract." - } -] \ No newline at end of file