diff --git a/accounts/doctype/account/account.py b/accounts/doctype/account/account.py
index b590ba7..08bf80f 100644
--- a/accounts/doctype/account/account.py
+++ b/accounts/doctype/account/account.py
@@ -208,31 +208,3 @@
 		and %s like %s order by name limit %s, %s""" % 
 		("%s", searchfield, "%s", "%s", "%s"), 
 		(filters["company"], "%%%s%%" % txt, start, page_len), as_list=1)
-
-def make_test_records(verbose):
-	from webnotes.test_runner import load_module_and_make_records, make_test_objects
-	
-	load_module_and_make_records("Company", verbose)
-	
-	accounts = [
-		# [account_name, parent_account, group_or_ledger]
-		["_Test Account Stock Expenses", "Direct Expenses - _TC", "Group"],
-		["_Test Account Shipping Charges", "_Test Account Stock Expenses - _TC", "Ledger"],
-		["_Test Account Customs Duty", "_Test Account Stock Expenses - _TC", "Ledger"],
-		["_Test Account Tax Assets", "Current Assets - _TC", "Group"],
-		["_Test Account VAT", "_Test Account Tax Assets - _TC", "Ledger"],
-		["_Test Account Cost for Goods Sold", "Expenses - _TC", "Ledger"],
-		["_Test Account Excise Duty", "_Test Account Tax Assets - _TC", "Ledger"],
-		["_Test Account Education Cess", "_Test Account Tax Assets - _TC", "Ledger"],
-		["_Test Account S&H Education Cess", "_Test Account Tax Assets - _TC", "Ledger"],
-		["_Test Account CST", "Direct Expenses - _TC", "Ledger"],
-		["_Test Account Discount", "Direct Expenses - _TC", "Ledger"]
-	]
-
-	return make_test_objects([[{
-			"doctype": "Account",
-			"account_name": account_name,
-			"parent_account": parent_account,
-			"company": "_Test Company",
-			"group_or_ledger": group_or_ledger
-		}] for account_name, parent_account, group_or_ledger in accounts])
\ No newline at end of file
diff --git a/accounts/doctype/account/test_account.py b/accounts/doctype/account/test_account.py
new file mode 100644
index 0000000..ec72dbc
--- /dev/null
+++ b/accounts/doctype/account/test_account.py
@@ -0,0 +1,25 @@
+def make_test_records(verbose):
+	from webnotes.test_runner import make_test_objects
+		
+	accounts = [
+		# [account_name, parent_account, group_or_ledger]
+		["_Test Account Stock Expenses", "Direct Expenses - _TC", "Group"],
+		["_Test Account Shipping Charges", "_Test Account Stock Expenses - _TC", "Ledger"],
+		["_Test Account Customs Duty", "_Test Account Stock Expenses - _TC", "Ledger"],
+		["_Test Account Tax Assets", "Current Assets - _TC", "Group"],
+		["_Test Account VAT", "_Test Account Tax Assets - _TC", "Ledger"],
+		["_Test Account Cost for Goods Sold", "Expenses - _TC", "Ledger"],
+		["_Test Account Excise Duty", "_Test Account Tax Assets - _TC", "Ledger"],
+		["_Test Account Education Cess", "_Test Account Tax Assets - _TC", "Ledger"],
+		["_Test Account S&H Education Cess", "_Test Account Tax Assets - _TC", "Ledger"],
+		["_Test Account CST", "Direct Expenses - _TC", "Ledger"],
+		["_Test Account Discount", "Direct Expenses - _TC", "Ledger"]
+	]
+
+	return make_test_objects("Account", [[{
+			"doctype": "Account",
+			"account_name": account_name,
+			"parent_account": parent_account,
+			"company": "_Test Company",
+			"group_or_ledger": group_or_ledger
+		}] for account_name, parent_account, group_or_ledger in accounts])
\ No newline at end of file
diff --git a/accounts/doctype/budget_distribution/test_budget_distribution.py b/accounts/doctype/budget_distribution/test_budget_distribution.py
new file mode 100644
index 0000000..3afb472
--- /dev/null
+++ b/accounts/doctype/budget_distribution/test_budget_distribution.py
@@ -0,0 +1 @@
+test_records = []
\ No newline at end of file
diff --git a/accounts/doctype/cost_center/cost_center.py b/accounts/doctype/cost_center/cost_center.py
index 65d1f68..d23b086 100644
--- a/accounts/doctype/cost_center/cost_center.py
+++ b/accounts/doctype/cost_center/cost_center.py
@@ -98,13 +98,3 @@
 			(cost_center_name, old))
 
 		return " - ".join(parts)	
-
-test_records = [
-	[{
-		"doctype": "Cost Center",
-		"cost_center_name": "_Test Cost Center",
-		"parent_cost_center": "Root - _TC",
-		"company_name": "_Test Company",
-		"group_or_ledger": "Ledger"
-	}],
-]
\ No newline at end of file
diff --git a/accounts/doctype/cost_center/test_cost_center.py b/accounts/doctype/cost_center/test_cost_center.py
new file mode 100644
index 0000000..1692d13
--- /dev/null
+++ b/accounts/doctype/cost_center/test_cost_center.py
@@ -0,0 +1,9 @@
+test_records = [
+	[{
+		"doctype": "Cost Center",
+		"cost_center_name": "_Test Cost Center",
+		"parent_cost_center": "Root - _TC",
+		"company_name": "_Test Company",
+		"group_or_ledger": "Ledger"
+	}],
+]
\ No newline at end of file
diff --git a/accounts/doctype/fiscal_year/fiscal_year.py b/accounts/doctype/fiscal_year/fiscal_year.py
index 95c1aa4..e23351c 100644
--- a/accounts/doctype/fiscal_year/fiscal_year.py
+++ b/accounts/doctype/fiscal_year/fiscal_year.py
@@ -30,17 +30,4 @@
 		webnotes.clear_cache()
 		
 		msgprint(self.doc.name + _(""" is now the default Fiscal Year. \
-			Please refresh your browser for the change to take effect."""))
-
-test_records = [
-	[{
-		"doctype": "Fiscal Year", 
-		"year": "_Test Fiscal Year 2013", 
-		"year_start_date": "2013-01-01"
-	}],
-	[{
-		"doctype": "Fiscal Year",
-		"year": "_Test Fiscal Year 2014", 
-		"year_start_date": "2014-01-01"
-	}]
-]
\ No newline at end of file
+			Please refresh your browser for the change to take effect."""))
\ No newline at end of file
diff --git a/accounts/doctype/fiscal_year/test_fiscal_year.py b/accounts/doctype/fiscal_year/test_fiscal_year.py
new file mode 100644
index 0000000..e031a19
--- /dev/null
+++ b/accounts/doctype/fiscal_year/test_fiscal_year.py
@@ -0,0 +1,14 @@
+from __future__ import unicode_literals
+
+test_records = [
+	[{
+		"doctype": "Fiscal Year", 
+		"year": "_Test Fiscal Year 2013", 
+		"year_start_date": "2013-01-01"
+	}],
+	[{
+		"doctype": "Fiscal Year",
+		"year": "_Test Fiscal Year 2014", 
+		"year_start_date": "2014-01-01"
+	}]
+]
\ No newline at end of file
diff --git a/accounts/doctype/payment_to_invoice_matching_tool/test_ir.py b/accounts/doctype/payment_to_invoice_matching_tool/test_payment_to_invoice_matching_tool.py
similarity index 100%
rename from accounts/doctype/payment_to_invoice_matching_tool/test_ir.py
rename to accounts/doctype/payment_to_invoice_matching_tool/test_payment_to_invoice_matching_tool.py
diff --git a/accounts/doctype/purchase_invoice/test_purchase_invoice.py b/accounts/doctype/purchase_invoice/test_purchase_invoice.py
index 0619475..825c7d0 100644
--- a/accounts/doctype/purchase_invoice/test_purchase_invoice.py
+++ b/accounts/doctype/purchase_invoice/test_purchase_invoice.py
@@ -21,23 +21,9 @@
 import webnotes.model
 import json	
 
+test_dependencies = ["Item", "Cost Center"]
+
 class TestPurchaseInvoice(unittest.TestCase):
-	def setUp(self):
-		webnotes.conn.begin()
-		self.load_test_data()
-		# webnotes.conn.set_value("Global Defaults", None, 
-		# 	"automatic_inventory_accounting", 1)
-		
-	def tearDown(self):
-		webnotes.conn.rollback()
-		
-	def load_test_data(self):
-		from webnotes.test_runner import make_test_records
-		webnotes.test_objects = {}
-		make_test_records("Cost Center", verbose=0)
-		make_test_records("Item", verbose=0)
-		make_test_records("Purchase Invoice", verbose=0)
-		
 	def test_gl_entries(self):
 		wrapper = webnotes.model_wrapper(self.get_test_doclist())
 		
diff --git a/accounts/doctype/sales_invoice/test_sales_invoice.py b/accounts/doctype/sales_invoice/test_sales_invoice.py
deleted file mode 100644
index 06ca887..0000000
--- a/accounts/doctype/sales_invoice/test_sales_invoice.py
+++ /dev/null
@@ -1,233 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-
-from __future__ import unicode_literals
-import unittest
-import webnotes
-import webnotes.model
-from webnotes.model.doclist import DocList
-from webnotes.utils import nowdate
-
-from stock.doctype.purchase_receipt import test_purchase_receipt
-
-company = webnotes.conn.get_default("company")
-abbr = webnotes.conn.get_value("Company", company, "abbr")
-
-def load_data():
-	test_purchase_receipt.load_data()
-	
-	# create customer group
-	webnotes.insert({"doctype": "Customer Group",
-		"customer_group_name": "_Test Customer Group",
-		"parent_customer_group": "All Customer Groups", "is_group": "No"})
-	
-	# create customer
-	webnotes.insert({"doctype": "Customer", "customer_name": "West Wind Inc.",
-		"customer_type": "Company", "territory": "Default",
-		"customer_group": "_Test Customer Group", "company": company,
-		"credit_days": 50, "credit_limit": 0})
-	
-	webnotes.insert({"doctype": "Account", "account_name": "_Test Account Sales",
-		"parent_account": "Income - %s" % abbr, "company": company,
-		"group_or_ledger": "Ledger"})
-	
-	webnotes.insert({"doctype": "Account", "account_name": "Excise Duty",
-		"parent_account": "Tax Assets - %s" % abbr, "company": company,
-		"group_or_ledger": "Ledger"})
-	
-	webnotes.insert({"doctype": "Account", "account_name": "Education Cess",
-		"parent_account": "Tax Assets - %s" % abbr, "company": company,
-		"group_or_ledger": "Ledger"})
-	
-	webnotes.insert({"doctype": "Account", "account_name": "S&H Education Cess",
-		"parent_account": "Tax Assets - %s" % abbr, "company": company,
-		"group_or_ledger": "Ledger"})
-		
-	webnotes.insert({"doctype": "Account", "account_name": "CST",
-		"parent_account": "Direct Expenses - %s" % abbr, "company": company,
-		"group_or_ledger": "Ledger"})
-		
-	webnotes.insert({"doctype": "Account", "account_name": "adj_rate",
-		"parent_account": "Direct Expenses - %s" % abbr, "company": company,
-		"group_or_ledger": "Ledger"})
-		
-	from webnotes.model.doc import Document
-	item = Document("Item", "Home Desktop 100")
-	
-	# excise duty
-	item_tax = item.addchild("item_tax", "Item Tax")
-	item_tax.tax_type = "Excise Duty - %s" % abbr
-	item_tax.tax_rate = 10
-	item_tax.save()
-
-import json	
-sales_invoice_doclist = [
-	# parent
-	{
-		"doctype": "Sales Invoice", 
-		"debit_to": "West Wind Inc. - %s" % abbr,
-		"customer_name": "West Wind Inc.",
-		"naming_series": "INV", "posting_date": nowdate(),
-		"company": company, "fiscal_year": webnotes.conn.get_default("fiscal_year"), 
-		"currency": webnotes.conn.get_default("currency"), "conversion_rate": 1.0,
-		"price_list_currency": webnotes.conn.get_default("currency"),
-		"plc_conversion_rate": 1.0, "net_total": 1250, "grand_total": 1627.05, 
-		"grand_total_export": 1627.05
-	},
-	# items
-	{
-		"doctype": "Sales Invoice Item", "warehouse": "Default Warehouse",
-		"item_code": "Home Desktop 100", "qty": 10, "basic_rate": 50, "amount": 500, 
-		"parentfield": "entries", "so_detail": None, "dn_detail": None,
-		"stock_uom": "Nos", "item_tax_rate": json.dumps({"Excise Duty - %s" % abbr: 10}),
-		"income_account": "_Test Account Sales - %s" % abbr, 
-		"cost_center": "Default Cost Center - %s" % abbr
-	},
-	{
-		"doctype": "Sales Invoice Item", "warehouse": "Default Warehouse",
-		"item_code": "Home Desktop 200", "qty": 5, "basic_rate": 150, "amount": 750,
-		"so_detail": None, "dn_detail": None, 
-		"parentfield": "entries", "stock_uom": "Nos", "income_account": "_Test Account Sales - %s" % abbr, 
-		"cost_center": "Default Cost Center - %s" % abbr
-	},
-	# taxes
-	{
-		"doctype": "Sales Taxes and Charges", "charge_type": "Actual",
-		"account_head": "Shipping Charges - %s" % abbr, "rate": 100, "tax_amount": 100,
-		"parentfield": "other_charges",
-		"cost_center_other_charges": "Default Cost Center - %s" % abbr
-	},
-	{
-		"doctype": "Sales Taxes and Charges", "charge_type": "On Net Total",
-		"account_head": "Customs Duty - %s" % abbr, "rate": 10, "tax_amount": 125,
-		"parentfield": "other_charges",
-		"cost_center_other_charges": "Default Cost Center - %s" % abbr
-	},
-	{
-		"doctype": "Sales Taxes and Charges", "charge_type": "On Net Total",
-		"account_head": "Excise Duty - %s" % abbr, "rate": 12, "tax_amount": 140,
-		"parentfield": "other_charges"
-	},
-	{
-		"doctype": "Sales Taxes and Charges", "charge_type": "On Previous Row Amount",
-		"account_head": "Education Cess - %s" % abbr, "rate": 2, "row_id": 3, "tax_amount": 2.8,
-		"parentfield": "other_charges"
-	},
-	{
-		"doctype": "Sales Taxes and Charges", "charge_type": "On Previous Row Amount",
-		"account_head": "S&H Education Cess - %s" % abbr, "rate": 1, "row_id": 3, 
-		"tax_amount": 1.4, "parentfield": "other_charges"
-	},
-	{
-		"doctype": "Sales Taxes and Charges", "charge_type": "On Previous Row Total",
-		"account_head": "CST - %s" % abbr, "rate": 2, "row_id": 5, "tax_amount": 32.38,
-		"parentfield": "other_charges",
-		"cost_center_other_charges": "Default Cost Center - %s" % abbr
-	},
-	{
-		"doctype": "Sales Taxes and Charges", "charge_type": "On Net Total",
-		"account_head": "VAT - Test - %s" % abbr, "rate": 12.5, "tax_amount": 156.25,
-		"parentfield": "other_charges"
-	},
-	{
-		"doctype": "Sales Taxes and Charges", "charge_type": "On Previous Row Total",
-		"account_head": "adj_rate - %s" % abbr, "rate": -10, "row_id": 7, "tax_amount": -180.78,
-		"parentfield": "other_charges",
-		"cost_center_other_charges": "Default Cost Center - %s" % abbr
-	},
-]
-
-class TestSalesInvoice(unittest.TestCase):
-	def setUp(self):
-		webnotes.conn.begin()
-		load_data()
-		#webnotes.conn.set_value("Global Defaults", None, "automatic_inventory_accounting", 1)
-
-	def test_sales_invoice(self):
-		doclist = [] + [d.copy() for d in sales_invoice_doclist]
-		controller = webnotes.insert(DocList(doclist))
-		controller.submit()
-		controller.load_from_db()
-		dl = controller.doclist
-
-		# test net total
-		self.assertEqual(dl[0].net_total, 1250)
-		
-		# test item values calculation
-		expected_values = [
-			{
-				"item_code": "Home Desktop 100",
-				# "ref_rate": 50,
-				# "adj_rate": 0,
-				# "export_amount": 500,
-				# "base_ref_rate": 50,
-				"basic_rate": 50,
-				"amount": 500
-			},
-			{
-				"item_code": "Home Desktop 200",
-				# "ref_rate": 150,
-				# "adj_rate": 0,
-				# "export_amount": 750,
-				# "base_ref_rate": 150,
-				"basic_rate": 150,
-				"amount": 750
-			},
-		]
-		for i, item in enumerate(dl.get({"parentfield": "entries"})):
-			for key, val in expected_values[i].items():
-				self.assertEqual(item.fields.get(key), val)
-		
-		# test tax amounts and totals
-		expected_values = [
-			["Shipping Charges - %s" % abbr, 100, 1350],
-			["Customs Duty - %s" % abbr, 125, 1475],
-			["Excise Duty - %s" % abbr, 140, 1615],
-			["Education Cess - %s" % abbr, 2.8, 1617.8],
-			["S&H Education Cess - %s" % abbr, 1.4, 1619.2],
-			["CST - %s" % abbr, 32.38, 1651.58],
-			["VAT - Test - %s" % abbr, 156.25, 1807.83],
-			["adj_rate - %s" % abbr, -180.78, 1627.05],
-		]		
-		for i, tax in enumerate(dl.get({"parentfield": "other_charges"})):
-			# print tax.account_head, tax.tax_amount, tax.total
-			self.assertEqual(tax.account_head, expected_values[i][0])
-			self.assertEqual(tax.tax_amount, expected_values[i][1])
-			# self.assertEqual(tax.total, expected_values[i][2])
-			
-		expected_gl_entries = {
-			"West Wind Inc. - %s" % abbr : [1627.05, 0.0],
-			"_Test Account Sales - %s" % abbr: [0.0, 1250.00],
-			"Shipping Charges - %s" % abbr: [0.0, 100],
-			"Customs Duty - %s" % abbr: [0, 125.0],
-			"Excise Duty - %s" % abbr: [0, 140],
-			"Education Cess - %s" % abbr: [0, 2.8],
-			"S&H Education Cess - %s" % abbr: [0, 1.4],
-			"CST - %s" % abbr: [0, 32.38],
-			"VAT - Test - %s" % abbr: [0, 156.25],
-			"adj_rate - %s" % abbr: [180.78, 0],
-		}
-		
-		gl_entries = webnotes.conn.sql("""select account, debit, credit from `tabGL Entry`
-			where voucher_type = %s and voucher_no = %s""", 
-			(controller.doc.doctype, controller.doc.name), as_dict=1)
-		
-		for gle in gl_entries:
-			self.assertEqual([gle.debit, gle.credit], expected_gl_entries[gle.account])
-
-	def tearDown(self):
-		webnotes.conn.rollback()
\ No newline at end of file
diff --git a/buying/doctype/supplier/supplier.py b/buying/doctype/supplier/supplier.py
index 0149f81..096a43e 100644
--- a/buying/doctype/supplier/supplier.py
+++ b/buying/doctype/supplier/supplier.py
@@ -182,12 +182,3 @@
 		#update master_name in doctype account
 		webnotes.conn.sql("""update `tabAccount` set master_name = %s, 
 			master_type = 'Supplier' where master_name = %s""" , (new,old))
-
-test_records = [
-	[{
-		"doctype": "Supplier",
-		"supplier_name": "_Test Supplier",
-		"supplier_type": "_Test Supplier Type",
-		"company": "_Test Company"
-	}]
-]
\ No newline at end of file
diff --git a/buying/doctype/supplier/test_supplier.py b/buying/doctype/supplier/test_supplier.py
new file mode 100644
index 0000000..3ee3419
--- /dev/null
+++ b/buying/doctype/supplier/test_supplier.py
@@ -0,0 +1,8 @@
+test_records = [
+	[{
+		"doctype": "Supplier",
+		"supplier_name": "_Test Supplier",
+		"supplier_type": "_Test Supplier Type",
+		"company": "_Test Company"
+	}]
+]
\ No newline at end of file
diff --git a/home/page/desktop/desktop.txt b/home/page/desktop/desktop.txt
index 1eec626..4a5fb95 100644
--- a/home/page/desktop/desktop.txt
+++ b/home/page/desktop/desktop.txt
@@ -1,21 +1,32 @@
 [
  {
-  "owner": "Administrator", 
+  "creation": "2012-06-14 18:44:56", 
   "docstatus": 0, 
-  "creation": "2012-02-24 11:37:43", 
+  "modified": "2013-02-12 18:11:00", 
   "modified_by": "Administrator", 
-  "modified": "2012-02-24 11:37:43"
+  "owner": "Administrator"
  }, 
  {
-  "name": "__common__", 
-  "title": "Desktop", 
-  "module": "Home", 
   "doctype": "Page", 
+  "module": "Home", 
+  "name": "__common__", 
   "page_name": "desktop", 
-  "standard": "Yes"
+  "standard": "Yes", 
+  "title": "Desktop"
  }, 
  {
-  "name": "desktop", 
-  "doctype": "Page"
+  "doctype": "Page Role", 
+  "name": "__common__", 
+  "parent": "desktop", 
+  "parentfield": "roles", 
+  "parenttype": "Page", 
+  "role": "All"
+ }, 
+ {
+  "doctype": "Page", 
+  "name": "desktop"
+ }, 
+ {
+  "doctype": "Page Role"
  }
 ]
\ No newline at end of file
diff --git a/hr/doctype/branch/branch.py b/hr/doctype/branch/branch.py
index 8b4a24d..eb3916b 100644
--- a/hr/doctype/branch/branch.py
+++ b/hr/doctype/branch/branch.py
@@ -21,4 +21,3 @@
 	def __init__(self, d, dl):
 		self.doc, self.doclist = d, dl
 		
-test_records = [[{"doctype":"Branch", "branch":"_Test Branch"}]]
\ No newline at end of file
diff --git a/hr/doctype/branch/test_branch.py b/hr/doctype/branch/test_branch.py
new file mode 100644
index 0000000..dc33644
--- /dev/null
+++ b/hr/doctype/branch/test_branch.py
@@ -0,0 +1 @@
+test_records = [[{"doctype":"Branch", "branch":"_Test Branch"}]]
\ No newline at end of file
diff --git a/hr/doctype/department/department.py b/hr/doctype/department/department.py
index c38ee93..6c41e4f 100644
--- a/hr/doctype/department/department.py
+++ b/hr/doctype/department/department.py
@@ -20,9 +20,4 @@
 class DocType:
 	def __init__(self, d, dl):
 		self.doc, self.doclist = d, dl
-		
-test_records = [
-	[{"doctype":"Department", "department_name":"_Test Department"}],
-	[{"doctype":"Department", "department_name":"_Test Department with Block List",
-		"holiday_block_list": "_Test Holiday Block List"}],
-]
+		
\ No newline at end of file
diff --git a/hr/doctype/department/test_department.py b/hr/doctype/department/test_department.py
new file mode 100644
index 0000000..9db4f61
--- /dev/null
+++ b/hr/doctype/department/test_department.py
@@ -0,0 +1,5 @@
+test_records = [
+	[{"doctype":"Department", "department_name":"_Test Department"}],
+	[{"doctype":"Department", "department_name":"_Test Department with Block List",
+		"holiday_block_list": "_Test Holiday Block List"}],
+]
diff --git a/hr/doctype/designation/designation.py b/hr/doctype/designation/designation.py
index d101ee3..eb3916b 100644
--- a/hr/doctype/designation/designation.py
+++ b/hr/doctype/designation/designation.py
@@ -21,4 +21,3 @@
 	def __init__(self, d, dl):
 		self.doc, self.doclist = d, dl
 		
-test_records = [[{"doctype":"Designation", "designation_name":"_Test Designation"}]]
\ No newline at end of file
diff --git a/hr/doctype/designation/test_designation.py b/hr/doctype/designation/test_designation.py
new file mode 100644
index 0000000..913b7ec
--- /dev/null
+++ b/hr/doctype/designation/test_designation.py
@@ -0,0 +1 @@
+test_records = [[{"doctype":"Designation", "designation_name":"_Test Designation"}]]
\ No newline at end of file
diff --git a/hr/doctype/employee/employee.py b/hr/doctype/employee/employee.py
index d08da1a..6846c5e 100644
--- a/hr/doctype/employee/employee.py
+++ b/hr/doctype/employee/employee.py
@@ -128,26 +128,3 @@
 		if self.doc.status == 'Left' and not self.doc.relieving_date:
 			msgprint("Please enter relieving date.")
 			raise Exception
-
-test_records = [[{
-	"doctype":"Employee",
-	"employee_name": "_Test Employee",
-	"naming_series": "_T-Employee-",
-	"date_of_joining": "2010-01-01",
-	"date_of_birth": "1980-01-01",
-	"gender": "Female",
-	"status": "Active",
-	"company": "_Test Company",
-	"user_id": "test@erpnext.com"
-}],
-[{
-	"doctype":"Employee",
-	"employee_name": "_Test Employee 1",
-	"naming_series": "_T-Employee-",
-	"date_of_joining": "2010-01-01",
-	"date_of_birth": "1980-01-01",
-	"gender": "Male",
-	"status": "Active",
-	"company": "_Test Company",
-	"user_id": "test1@erpnext.com"
-}]]
\ No newline at end of file
diff --git a/hr/doctype/employee/test_employee.py b/hr/doctype/employee/test_employee.py
new file mode 100644
index 0000000..a9c715b
--- /dev/null
+++ b/hr/doctype/employee/test_employee.py
@@ -0,0 +1,22 @@
+test_records = [[{
+	"doctype":"Employee",
+	"employee_name": "_Test Employee",
+	"naming_series": "_T-Employee-",
+	"date_of_joining": "2010-01-01",
+	"date_of_birth": "1980-01-01",
+	"gender": "Female",
+	"status": "Active",
+	"company": "_Test Company",
+	"user_id": "test@erpnext.com"
+}],
+[{
+	"doctype":"Employee",
+	"employee_name": "_Test Employee 1",
+	"naming_series": "_T-Employee-",
+	"date_of_joining": "2010-01-01",
+	"date_of_birth": "1980-01-01",
+	"gender": "Male",
+	"status": "Active",
+	"company": "_Test Company",
+	"user_id": "test1@erpnext.com"
+}]]
\ No newline at end of file
diff --git a/hr/doctype/employment_type/employment_type.py b/hr/doctype/employment_type/employment_type.py
index ac34d45..6c41e4f 100644
--- a/hr/doctype/employment_type/employment_type.py
+++ b/hr/doctype/employment_type/employment_type.py
@@ -20,6 +20,4 @@
 class DocType:
 	def __init__(self, d, dl):
 		self.doc, self.doclist = d, dl
-		
-test_records = [[{"doctype":"Employment Type", 
-	"employee_type_name": "_Test Employment Type"}]]
\ No newline at end of file
+		
\ No newline at end of file
diff --git a/hr/doctype/employment_type/test_employment_type.py b/hr/doctype/employment_type/test_employment_type.py
new file mode 100644
index 0000000..9aedad4
--- /dev/null
+++ b/hr/doctype/employment_type/test_employment_type.py
@@ -0,0 +1,2 @@
+test_records = [[{"doctype":"Employment Type", 
+	"employee_type_name": "_Test Employment Type"}]]
\ No newline at end of file
diff --git a/hr/doctype/grade/grade.py b/hr/doctype/grade/grade.py
index b1eaefa..eb3916b 100644
--- a/hr/doctype/grade/grade.py
+++ b/hr/doctype/grade/grade.py
@@ -21,4 +21,3 @@
 	def __init__(self, d, dl):
 		self.doc, self.doclist = d, dl
 		
-test_records = [[{"doctype":"Grade", "grade_name":"Test Grade"}]]
\ No newline at end of file
diff --git a/hr/doctype/grade/test_grade.py b/hr/doctype/grade/test_grade.py
new file mode 100644
index 0000000..2d6ce79
--- /dev/null
+++ b/hr/doctype/grade/test_grade.py
@@ -0,0 +1 @@
+test_records = [[{"doctype":"Grade", "grade_name":"_Test Grade"}]]
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/holiday_block_list.py b/hr/doctype/holiday_block_list/holiday_block_list.py
index a016ab8..776e4a9 100644
--- a/hr/doctype/holiday_block_list/holiday_block_list.py
+++ b/hr/doctype/holiday_block_list/holiday_block_list.py
@@ -20,23 +20,3 @@
 				webnotes.msgprint(_("Date is repeated") + ":" + d.block_date, raise_exception=1)
 			dates.append(d.block_date)
 
-test_records = [[{
-		"doctype":"Holiday Block List",
-		"holiday_block_list_name": "_Test Holiday Block List",
-		"year": "_Test Fiscal Year 2013",
-		"company": "_Test Company"
-	}, {
-		"doctype": "Holiday Block List Date",
-		"parent": "_Test Holiday Block List",
-		"parenttype": "Holiday Block List",
-		"parentfield": "holiday_block_list_dates",
-		"block_date": "2013-01-02",
-		"reason": "First work day"
-	}, {
-		"doctype": "Holiday Block List Allow",
-		"parent": "_Test Holiday Block List",
-		"parenttype": "Holiday Block List",
-		"parentfield": "holiday_block_list_allowed",
-		"allow_user": "test1@erpnext.com",
-		}
-	]]
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/test_holiday_block_list.py b/hr/doctype/holiday_block_list/test_holiday_block_list.py
new file mode 100644
index 0000000..5ec4dd1
--- /dev/null
+++ b/hr/doctype/holiday_block_list/test_holiday_block_list.py
@@ -0,0 +1,20 @@
+test_records = [[{
+		"doctype":"Holiday Block List",
+		"holiday_block_list_name": "_Test Holiday Block List",
+		"year": "_Test Fiscal Year 2013",
+		"company": "_Test Company"
+	}, {
+		"doctype": "Holiday Block List Date",
+		"parent": "_Test Holiday Block List",
+		"parenttype": "Holiday Block List",
+		"parentfield": "holiday_block_list_dates",
+		"block_date": "2013-01-02",
+		"reason": "First work day"
+	}, {
+		"doctype": "Holiday Block List Allow",
+		"parent": "_Test Holiday Block List",
+		"parenttype": "Holiday Block List",
+		"parentfield": "holiday_block_list_allowed",
+		"allow_user": "test1@erpnext.com",
+		}
+	]]
\ No newline at end of file
diff --git a/hr/doctype/holiday_list/holiday_list.py b/hr/doctype/holiday_list/holiday_list.py
index 4c929cd..5a4c062 100644
--- a/hr/doctype/holiday_list/holiday_list.py
+++ b/hr/doctype/holiday_list/holiday_list.py
@@ -89,16 +89,3 @@
 	def update_default_holiday_list(self):
 		webnotes.conn.sql("""update `tabHoliday List` set is_default = 0 
 			where ifnull(is_default, 0) = 1 and fiscal_year = %s""", (self.doc.fiscal_year,))
-
-test_records = [[{
-		"doctype": "Holiday List",
-		"holiday_list_name": "_Test Holiday List",
-		"fiscal_year": "_Test Fiscal Year 2013"
-	}, {
-		"doctype": "Holiday",
-		"parent": "_Test Holiday List",
-		"parenttype": "Holiday List",
-		"parentfield": "holiday_list_details",
-		"holiday_date": "2013-01-01",
-		"description": "New Year"
-	}]]
diff --git a/hr/doctype/holiday_list/test_holiday_list.py b/hr/doctype/holiday_list/test_holiday_list.py
new file mode 100644
index 0000000..e3a2d82
--- /dev/null
+++ b/hr/doctype/holiday_list/test_holiday_list.py
@@ -0,0 +1,12 @@
+test_records = [[{
+		"doctype": "Holiday List",
+		"holiday_list_name": "_Test Holiday List",
+		"fiscal_year": "_Test Fiscal Year 2013"
+	}, {
+		"doctype": "Holiday",
+		"parent": "_Test Holiday List",
+		"parenttype": "Holiday List",
+		"parentfield": "holiday_list_details",
+		"holiday_date": "2013-01-01",
+		"description": "New Year"
+	}]]
\ No newline at end of file
diff --git a/hr/doctype/leave_application/test_leave_application.py b/hr/doctype/leave_application/test_leave_application.py
index 74f73c2..7195826 100644
--- a/hr/doctype/leave_application/test_leave_application.py
+++ b/hr/doctype/leave_application/test_leave_application.py
@@ -1,9 +1,6 @@
-import sys
+import webnotes
 import unittest
 
-if __name__=="__main__":
-	sys.path.extend([".", "app", "lib"])
-
 from hr.doctype.leave_application.leave_application import LeaveDayBlockedError
 
 class TestLeaveApplication(unittest.TestCase):
@@ -54,13 +51,3 @@
 		"employee": "_T-Employee-0001",
 		"company": "_Test Company"
 	}]]
-
-if __name__=="__main__":
-	import webnotes
-	webnotes.connect()
-
-	from webnotes.test_runner import make_test_records
-	make_test_records("Leave Application")
-
-	unittest.main()
-
diff --git a/hr/doctype/leave_type/leave_type.py b/hr/doctype/leave_type/leave_type.py
index 5b2e5e8..6c41e4f 100644
--- a/hr/doctype/leave_type/leave_type.py
+++ b/hr/doctype/leave_type/leave_type.py
@@ -20,10 +20,4 @@
 class DocType:
 	def __init__(self, d, dl):
 		self.doc, self.doclist = d, dl
-		
-test_records = [
-	[{
-		"leave_type_name": "_Test Leave Type",
-		"doctype": "Leave Type"
-	}]
-]
\ No newline at end of file
+		
\ No newline at end of file
diff --git a/hr/doctype/leave_type/test_leave_type.py b/hr/doctype/leave_type/test_leave_type.py
new file mode 100644
index 0000000..4d78975
--- /dev/null
+++ b/hr/doctype/leave_type/test_leave_type.py
@@ -0,0 +1,6 @@
+test_records = [
+	[{
+		"leave_type_name": "_Test Leave Type",
+		"doctype": "Leave Type"
+	}]
+]
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 467c6b0..c1fa08f 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -166,5 +166,6 @@
 	"patches.february_2013.remove_sales_order_pending_items",
 	"patches.february_2013.account_negative_balance",
 	"patches.february_2013.remove_account_utils_folder",
-	"patches.february_2013.update_company_in_leave_application"
+	"patches.february_2013.update_company_in_leave_application",
+	"execute:webnotes.conn.sql_ddl('alter table tabSeries change `name` `name` varchar(100)')"
 ]
\ No newline at end of file
diff --git a/selling/doctype/campaign/campaign.py b/selling/doctype/campaign/campaign.py
index 7f48feb..6c41e4f 100644
--- a/selling/doctype/campaign/campaign.py
+++ b/selling/doctype/campaign/campaign.py
@@ -19,4 +19,5 @@
 
 class DocType:
 	def __init__(self, d, dl):
-		self.doc, self.doclist = d, dl
\ No newline at end of file
+		self.doc, self.doclist = d, dl
+		
\ No newline at end of file
diff --git a/selling/doctype/campaign/test_campaign.py b/selling/doctype/campaign/test_campaign.py
new file mode 100644
index 0000000..4783fff
--- /dev/null
+++ b/selling/doctype/campaign/test_campaign.py
@@ -0,0 +1,4 @@
+test_records = [
+	[{"doctype":"Campaign", "campaign_name":"_Test Campaign"}],
+	[{"doctype":"Campaign", "campaign_name":"_Test Campaign 1"}],
+]
\ No newline at end of file
diff --git a/selling/doctype/customer/customer.py b/selling/doctype/customer/customer.py
index 932256f..0b49b77 100644
--- a/selling/doctype/customer/customer.py
+++ b/selling/doctype/customer/customer.py
@@ -248,15 +248,4 @@
 
 		#update master_name in doctype account
 		webnotes.conn.sql("""update `tabAccount` set master_name = %s, 
-			master_type = 'Customer' where master_name = %s""", (new,old))
-
-test_records = [
-	[{
-		"doctype": "Customer",
-		"customer_name": "_Test Customer",
-		"customer_type": "Individual",
-		"customer_group": "_Test Customer Group",
-		"territory": "_Test Territory",
-		"company": "_Test Company"
-	}]
-]
\ No newline at end of file
+			master_type = 'Customer' where master_name = %s""", (new,old))
\ No newline at end of file
diff --git a/selling/doctype/customer/test_customer.py b/selling/doctype/customer/test_customer.py
new file mode 100644
index 0000000..09e2f5d
--- /dev/null
+++ b/selling/doctype/customer/test_customer.py
@@ -0,0 +1,10 @@
+test_records = [
+	[{
+		"doctype": "Customer",
+		"customer_name": "_Test Customer",
+		"customer_type": "Individual",
+		"customer_group": "_Test Customer Group",
+		"territory": "_Test Territory",
+		"company": "_Test Company"
+	}]
+]
\ No newline at end of file
diff --git a/selling/doctype/industry_type/industry_type.py b/selling/doctype/industry_type/industry_type.py
index 7f48feb..6c41e4f 100644
--- a/selling/doctype/industry_type/industry_type.py
+++ b/selling/doctype/industry_type/industry_type.py
@@ -19,4 +19,5 @@
 
 class DocType:
 	def __init__(self, d, dl):
-		self.doc, self.doclist = d, dl
\ No newline at end of file
+		self.doc, self.doclist = d, dl
+		
\ No newline at end of file
diff --git a/selling/doctype/industry_type/test_industry_type.py b/selling/doctype/industry_type/test_industry_type.py
new file mode 100644
index 0000000..3440807
--- /dev/null
+++ b/selling/doctype/industry_type/test_industry_type.py
@@ -0,0 +1,4 @@
+test_records = [
+	[{"doctype":"Industry Type", "industry":"_Test Industry"}],
+	[{"doctype":"Industry Type", "industry":"_Test Industry 1"}],
+]
\ No newline at end of file
diff --git a/selling/doctype/lead/lead.py b/selling/doctype/lead/lead.py
index 4c76d17..c336fe2 100644
--- a/selling/doctype/lead/lead.py
+++ b/selling/doctype/lead/lead.py
@@ -100,4 +100,4 @@
 		webnotes.conn.sql("""delete from tabCommunication where lead=%s""",
 			self.doc.name)
 		webnotes.conn.sql("""update `tabSupport Ticket` set lead='' where lead=%s""",
-			self.doc.name)
\ No newline at end of file
+			self.doc.name)
diff --git a/selling/doctype/lead/test_lead.py b/selling/doctype/lead/test_lead.py
new file mode 100644
index 0000000..e525547
--- /dev/null
+++ b/selling/doctype/lead/test_lead.py
@@ -0,0 +1,10 @@
+test_records = [
+	[{"doctype":"Lead", "lead_name": "_Test Lead", "status":"Open", 
+		"email_id":"test_lead@example.com"}],
+	[{"doctype":"Lead", "lead_name": "_Test Lead 1", "status":"Open", 
+		"email_id":"test_lead1@example.com"}],
+	[{"doctype":"Lead", "lead_name": "_Test Lead 2", "status":"Contacted", 
+		"email_id":"test_lead2@example.com"}],
+	[{"doctype":"Lead", "lead_name": "_Test Lead 3", "status":"Converted", 
+		"email_id":"test_lead3@example.com"}],
+]
diff --git a/setup/doctype/brand/brand.py b/setup/doctype/brand/brand.py
index 19546da..7794430 100644
--- a/setup/doctype/brand/brand.py
+++ b/setup/doctype/brand/brand.py
@@ -20,10 +20,3 @@
 class DocType:
 	def __init__(self, d, dl):
 		self.doc, self.doclist = d, dl
-		
-test_records = [
-	[{
-		"doctype": "Brand",
-		"brand": "_Test Brand"
-	}]
-]
\ No newline at end of file
diff --git a/setup/doctype/brand/test_brand.py b/setup/doctype/brand/test_brand.py
new file mode 100644
index 0000000..7a18c2e
--- /dev/null
+++ b/setup/doctype/brand/test_brand.py
@@ -0,0 +1,6 @@
+test_records = [
+	[{
+		"doctype": "Brand",
+		"brand": "_Test Brand"
+	}]
+]
\ No newline at end of file
diff --git a/setup/doctype/company/company.py b/setup/doctype/company/company.py
index a951af5..a9d11c6 100644
--- a/setup/doctype/company/company.py
+++ b/setup/doctype/company/company.py
@@ -254,13 +254,4 @@
 		sql("update `tabCompany` set company_name = '%s' where name = '%s'" %(newdn,olddn))	
 		sql("update `tabSingles` set value = %s where doctype='Global Defaults' and field = 'default_company' and value = %s", (newdn, olddn))	
 		if get_defaults('company') == olddn:
-			set_default('company', newdn)
-
-test_records = [
-	[{
-		"doctype": "Company",
-		"company_name": "_Test Company",
-		"abbr": "_TC",
-		"default_currency": "INR",
-	}],
-]
\ No newline at end of file
+			set_default('company', newdn)
\ No newline at end of file
diff --git a/setup/doctype/company/test_company.py b/setup/doctype/company/test_company.py
new file mode 100644
index 0000000..fe793ff
--- /dev/null
+++ b/setup/doctype/company/test_company.py
@@ -0,0 +1,10 @@
+test_ignore = ["Account"]
+
+test_records = [
+	[{
+		"doctype": "Company",
+		"company_name": "_Test Company",
+		"abbr": "_TC",
+		"default_currency": "INR",
+	}],
+]
\ No newline at end of file
diff --git a/setup/doctype/country/country.py b/setup/doctype/country/country.py
index 360f679..7794430 100644
--- a/setup/doctype/country/country.py
+++ b/setup/doctype/country/country.py
@@ -20,10 +20,3 @@
 class DocType:
 	def __init__(self, d, dl):
 		self.doc, self.doclist = d, dl
-		
-test_records = [
-	[{
-		"doctype": "Country",
-		"country_name": "_Test Country"
-	}]
-]
\ No newline at end of file
diff --git a/setup/doctype/country/test_country.py b/setup/doctype/country/test_country.py
new file mode 100644
index 0000000..c42e80f
--- /dev/null
+++ b/setup/doctype/country/test_country.py
@@ -0,0 +1,6 @@
+test_records = [
+	[{
+		"doctype": "Country",
+		"country_name": "_Test Country"
+	}]
+]
\ No newline at end of file
diff --git a/setup/doctype/currency/test_currency.py b/setup/doctype/currency/test_currency.py
new file mode 100644
index 0000000..71963f9
--- /dev/null
+++ b/setup/doctype/currency/test_currency.py
@@ -0,0 +1,2 @@
+# pre loaded
+test_records = []
\ No newline at end of file
diff --git a/setup/doctype/customer_group/customer_group.py b/setup/doctype/customer_group/customer_group.py
index fa81dca..de0042e 100644
--- a/setup/doctype/customer_group/customer_group.py
+++ b/setup/doctype/customer_group/customer_group.py
@@ -61,12 +61,3 @@
 
 		# rebuild tree
 		super(DocType, self).on_trash()
-
-test_records = [
-	[{
-		"doctype": "Customer Group",
-		"customer_group_name": "_Test Customer Group",
-		"parent_customer_group": "All Customer Groups",
-		"is_group": "No"
-	}]
-]
\ No newline at end of file
diff --git a/setup/doctype/customer_group/test_customer_group.py b/setup/doctype/customer_group/test_customer_group.py
new file mode 100644
index 0000000..7670824
--- /dev/null
+++ b/setup/doctype/customer_group/test_customer_group.py
@@ -0,0 +1,8 @@
+test_records = [
+	[{
+		"doctype": "Customer Group",
+		"customer_group_name": "_Test Customer Group",
+		"parent_customer_group": "All Customer Groups",
+		"is_group": "No"
+	}]
+]
\ No newline at end of file
diff --git a/setup/doctype/item_group/item_group.py b/setup/doctype/item_group/item_group.py
index c0fd906..66565d6 100644
--- a/setup/doctype/item_group/item_group.py
+++ b/setup/doctype/item_group/item_group.py
@@ -68,18 +68,3 @@
 		if self.doc.slideshow:
 			from website.helpers.slideshow import get_slideshow
 			get_slideshow(self)
-			
-test_records = [
-	[{
-		"doctype": "Item Group",
-		"item_group_name": "_Test Item Group",
-		"parent_item_group": "All Item Groups",
-		"is_group": "No"
-	}],
-	[{
-		"doctype": "Item Group",
-		"item_group_name": "_Test Item Group Desktops",
-		"parent_item_group": "All Item Groups",
-		"is_group": "No"
-	}],
-]
\ No newline at end of file
diff --git a/setup/doctype/item_group/test_item_group.py b/setup/doctype/item_group/test_item_group.py
new file mode 100644
index 0000000..924b367
--- /dev/null
+++ b/setup/doctype/item_group/test_item_group.py
@@ -0,0 +1,14 @@
+test_records = [
+	[{
+		"doctype": "Item Group",
+		"item_group_name": "_Test Item Group",
+		"parent_item_group": "All Item Groups",
+		"is_group": "No"
+	}],
+	[{
+		"doctype": "Item Group",
+		"item_group_name": "_Test Item Group Desktops",
+		"parent_item_group": "All Item Groups",
+		"is_group": "No"
+	}],
+]
\ No newline at end of file
diff --git a/setup/doctype/price_list/test_price_list.py b/setup/doctype/price_list/test_price_list.py
new file mode 100644
index 0000000..53b86a3
--- /dev/null
+++ b/setup/doctype/price_list/test_price_list.py
@@ -0,0 +1,6 @@
+test_records = [
+	[{
+		"doctype": "Price List",
+		"price_list_name": "_Test Price List"
+	}]
+]
\ No newline at end of file
diff --git a/setup/doctype/quotation_lost_reason/quotation_lost_reason.py b/setup/doctype/quotation_lost_reason/quotation_lost_reason.py
index 7f48feb..7794430 100644
--- a/setup/doctype/quotation_lost_reason/quotation_lost_reason.py
+++ b/setup/doctype/quotation_lost_reason/quotation_lost_reason.py
@@ -19,4 +19,4 @@
 
 class DocType:
 	def __init__(self, d, dl):
-		self.doc, self.doclist = d, dl
\ No newline at end of file
+		self.doc, self.doclist = d, dl
diff --git a/setup/doctype/quotation_lost_reason/test_quotation_lost_reason.py b/setup/doctype/quotation_lost_reason/test_quotation_lost_reason.py
new file mode 100644
index 0000000..9e98204
--- /dev/null
+++ b/setup/doctype/quotation_lost_reason/test_quotation_lost_reason.py
@@ -0,0 +1 @@
+test_records = [[{"doctype":"Quotation Lost Reason", "order_lost_reason": "_Test Quotation Lost Reason"}]]
\ No newline at end of file
diff --git a/setup/doctype/sales_partner/test_sales_partner.py b/setup/doctype/sales_partner/test_sales_partner.py
new file mode 100644
index 0000000..3afb472
--- /dev/null
+++ b/setup/doctype/sales_partner/test_sales_partner.py
@@ -0,0 +1 @@
+test_records = []
\ No newline at end of file
diff --git a/setup/doctype/sales_person/test_sales_person.py b/setup/doctype/sales_person/test_sales_person.py
new file mode 100644
index 0000000..5af4509
--- /dev/null
+++ b/setup/doctype/sales_person/test_sales_person.py
@@ -0,0 +1,8 @@
+test_records = [
+	[{
+		"doctype": "Sales Person",
+		"sales_person_name": "_Test Sales Person",
+		"parent_sales_person": "All Sales Persons",
+		"is_group": "No"
+	}]
+]
\ No newline at end of file
diff --git a/setup/doctype/supplier_type/supplier_type.py b/setup/doctype/supplier_type/supplier_type.py
index 4a8fdff..7794430 100644
--- a/setup/doctype/supplier_type/supplier_type.py
+++ b/setup/doctype/supplier_type/supplier_type.py
@@ -20,11 +20,3 @@
 class DocType:
 	def __init__(self, d, dl):
 		self.doc, self.doclist = d, dl
-		
-
-test_records = [
-	[{
-		"doctype": "Supplier Type",
-		"supplier_type": "_Test Supplier Type",
-	}]
-]
\ No newline at end of file
diff --git a/setup/doctype/supplier_type/test_supplier_type.py b/setup/doctype/supplier_type/test_supplier_type.py
new file mode 100644
index 0000000..74dde97
--- /dev/null
+++ b/setup/doctype/supplier_type/test_supplier_type.py
@@ -0,0 +1,6 @@
+test_records = [
+	[{
+		"doctype": "Supplier Type",
+		"supplier_type": "_Test Supplier Type",
+	}]
+]
\ No newline at end of file
diff --git a/setup/doctype/territory/territory.py b/setup/doctype/territory/territory.py
index 11bd4cc..d97a9ca 100644
--- a/setup/doctype/territory/territory.py
+++ b/setup/doctype/territory/territory.py
@@ -33,12 +33,4 @@
 			if not flt(d.target_qty) and not flt(d.target_amount):
 				msgprint("Either target qty or target amount is mandatory.")
 				raise Exception
-				
-test_records = [
-	[{
-		"doctype": "Territory",
-		"territory_name": "_Test Territory",
-		"parent_territory": "All Territories",
-		"is_group": "No",
-	}]
-]
\ No newline at end of file
+				
\ No newline at end of file
diff --git a/setup/doctype/territory/test_territory.py b/setup/doctype/territory/test_territory.py
new file mode 100644
index 0000000..2124199
--- /dev/null
+++ b/setup/doctype/territory/test_territory.py
@@ -0,0 +1,8 @@
+test_records = [
+	[{
+		"doctype": "Territory",
+		"territory_name": "_Test Territory",
+		"parent_territory": "All Territories",
+		"is_group": "No",
+	}]
+]
\ No newline at end of file
diff --git a/setup/doctype/uom/test_uom.py b/setup/doctype/uom/test_uom.py
new file mode 100644
index 0000000..51c2bdd
--- /dev/null
+++ b/setup/doctype/uom/test_uom.py
@@ -0,0 +1,6 @@
+test_records = [
+	[{
+		"doctype": "UOM",
+		"uom_name": "_Test UOM"
+	}]
+]
\ No newline at end of file
diff --git a/setup/doctype/uom/uom.py b/setup/doctype/uom/uom.py
index 733cb57..7794430 100644
--- a/setup/doctype/uom/uom.py
+++ b/setup/doctype/uom/uom.py
@@ -20,10 +20,3 @@
 class DocType:
 	def __init__(self, d, dl):
 		self.doc, self.doclist = d, dl
-		
-test_records = [
-	[{
-		"doctype": "UOM",
-		"uom_name": "_Test UOM"
-	}]
-]
\ No newline at end of file
diff --git a/setup/doctype/warehouse_type/test_warehouse_type.py b/setup/doctype/warehouse_type/test_warehouse_type.py
new file mode 100644
index 0000000..208859b
--- /dev/null
+++ b/setup/doctype/warehouse_type/test_warehouse_type.py
@@ -0,0 +1,6 @@
+test_records = [
+	[{
+		"doctype": "Warehouse Type",
+		"warehouse_type": "_Test Warehouse Type"
+	}]
+]
\ No newline at end of file
diff --git a/setup/doctype/warehouse_type/warehouse_type.py b/setup/doctype/warehouse_type/warehouse_type.py
index 451db41..7794430 100644
--- a/setup/doctype/warehouse_type/warehouse_type.py
+++ b/setup/doctype/warehouse_type/warehouse_type.py
@@ -20,10 +20,3 @@
 class DocType:
 	def __init__(self, d, dl):
 		self.doc, self.doclist = d, dl
-		
-test_records = [
-	[{
-		"doctype": "Warehouse Type",
-		"warehouse_type": "_Test Warehouse Type"
-	}]
-]
\ No newline at end of file
diff --git a/startup/__init__.py b/startup/__init__.py
index 08a243c..18ae932 100644
--- a/startup/__init__.py
+++ b/startup/__init__.py
@@ -39,7 +39,9 @@
 	"Company": "company",
 	"Territory": "territory"
 }
-	
+
+application_home_page = "desktop"
+
 # add startup propertes
 mail_footer = """<div style="padding: 7px; text-align: right; color: #888"><small>Sent via 
 	<a style="color: #888" href="https://erpnext.com">ERPNext</a></div>"""
diff --git a/stock/doctype/item/item.py b/stock/doctype/item/item.py
index 2d781bd..c6ace19 100644
--- a/stock/doctype/item/item.py
+++ b/stock/doctype/item/item.py
@@ -221,49 +221,3 @@
 		if self.doc.slideshow:
 			from website.helpers.slideshow import get_slideshow
 			get_slideshow(self)
-			
-test_records = [
-	[{
-		"doctype": "Item",
-		"item_code": "_Test Item Home Desktop 100",
-		"item_name": "_Test Item Home Desktop 100",
-		"description": "_Test Item Home Desktop 100",
-		"item_group": "_Test Item Group Desktops",
-		"is_stock_item": "Yes",
-		"is_asset_item": "No",
-		"has_batch_no": "No",
-		"has_serial_no": "No",
-		"is_purchase_item": "Yes",
-		"is_sales_item": "Yes",
-		"is_service_item": "No",
-		"is_sample_item": "No",
-		"inspection_required": "No",
-		"is_pro_applicable": "No",
-		"is_sub_contracted_item": "No",
-		"stock_uom": "_Test UOM"
-	},
-	{
-		"doctype": "Item Tax",
-		"tax_type": "_Test Account Excise Duty - _TC",
-		"tax_rate": 10
-	}],
-	[{
-		"doctype": "Item",
-		"item_code": "_Test Item Home Desktop 200",
-		"item_name": "_Test Item Home Desktop 200",
-		"description": "_Test Item Home Desktop 200",
-		"item_group": "_Test Item Group Desktops",
-		"is_stock_item": "Yes",
-		"is_asset_item": "No",
-		"has_batch_no": "No",
-		"has_serial_no": "No",
-		"is_purchase_item": "Yes",
-		"is_sales_item": "Yes",
-		"is_service_item": "No",
-		"is_sample_item": "No",
-		"inspection_required": "No",
-		"is_pro_applicable": "No",
-		"is_sub_contracted_item": "No",
-		"stock_uom": "_Test UOM"
-	}],
-]
\ No newline at end of file
diff --git a/stock/doctype/item/test_item.py b/stock/doctype/item/test_item.py
index f7876a6..28da848 100644
--- a/stock/doctype/item/test_item.py
+++ b/stock/doctype/item/test_item.py
@@ -76,3 +76,48 @@
 docnotok = [Document(fielddata=r) for r in tabNotOK]
 
 
+test_records = [
+	[{
+		"doctype": "Item",
+		"item_code": "_Test Item Home Desktop 100",
+		"item_name": "_Test Item Home Desktop 100",
+		"description": "_Test Item Home Desktop 100",
+		"item_group": "_Test Item Group Desktops",
+		"is_stock_item": "Yes",
+		"is_asset_item": "No",
+		"has_batch_no": "No",
+		"has_serial_no": "No",
+		"is_purchase_item": "Yes",
+		"is_sales_item": "Yes",
+		"is_service_item": "No",
+		"is_sample_item": "No",
+		"inspection_required": "No",
+		"is_pro_applicable": "No",
+		"is_sub_contracted_item": "No",
+		"stock_uom": "_Test UOM"
+	},
+	{
+		"doctype": "Item Tax",
+		"tax_type": "_Test Account Excise Duty - _TC",
+		"tax_rate": 10
+	}],
+	[{
+		"doctype": "Item",
+		"item_code": "_Test Item Home Desktop 200",
+		"item_name": "_Test Item Home Desktop 200",
+		"description": "_Test Item Home Desktop 200",
+		"item_group": "_Test Item Group Desktops",
+		"is_stock_item": "Yes",
+		"is_asset_item": "No",
+		"has_batch_no": "No",
+		"has_serial_no": "No",
+		"is_purchase_item": "Yes",
+		"is_sales_item": "Yes",
+		"is_service_item": "No",
+		"is_sample_item": "No",
+		"inspection_required": "No",
+		"is_pro_applicable": "No",
+		"is_sub_contracted_item": "No",
+		"stock_uom": "_Test UOM"
+	}],
+]
\ No newline at end of file
diff --git a/stock/doctype/warehouse/test_warehouse.py b/stock/doctype/warehouse/test_warehouse.py
new file mode 100644
index 0000000..eb4554b
--- /dev/null
+++ b/stock/doctype/warehouse/test_warehouse.py
@@ -0,0 +1,7 @@
+test_records = [
+	[{
+		"doctype": "Warehouse",
+		"warehouse_name": "_Test Warehouse",
+		"warehouse_type": "_Test Warehouse Type"
+	}]
+]
\ No newline at end of file
diff --git a/stock/doctype/warehouse/warehouse.py b/stock/doctype/warehouse/warehouse.py
index a4ee370..fb6fc29 100644
--- a/stock/doctype/warehouse/warehouse.py
+++ b/stock/doctype/warehouse/warehouse.py
@@ -207,11 +207,3 @@
 				exists for this warehouse.""", raise_exception=1)
 		else:
 			sql("delete from `tabStock Ledger Entry` where warehouse = %s", self.doc.name)
-			
-test_records = [
-	[{
-		"doctype": "Warehouse",
-		"warehouse_name": "_Test Warehouse",
-		"warehouse_type": "_Test Warehouse Type"
-	}]
-]
\ No newline at end of file
diff --git a/support/doctype/newsletter/newsletter.js b/support/doctype/newsletter/newsletter.js
index 69a55ef..b7e24d2 100644
--- a/support/doctype/newsletter/newsletter.js
+++ b/support/doctype/newsletter/newsletter.js
@@ -29,4 +29,13 @@
 		cur_frm.set_value("send_from", 
 			repl("%(fullname)s <%(email)s>", wn.user_info(doc.owner)));
 	}
+	
+	wn.call({
+		method: "support.doctype.newsletter.newsletter.get_lead_options",
+		type: "GET",
+		callback: function(r) {
+			set_field_options("lead_source", r.message.sources.join("\n"))
+			set_field_options("lead_status", r.message.statuses.join("\n"))
+		}
+	})
 }
\ No newline at end of file
diff --git a/support/doctype/newsletter/newsletter.py b/support/doctype/newsletter/newsletter.py
index d32154e..88ec384 100644
--- a/support/doctype/newsletter/newsletter.py
+++ b/support/doctype/newsletter/newsletter.py
@@ -25,100 +25,72 @@
 class DocType():
 	def __init__(self, d, dl):
 		self.doc, self.doclist = d, dl
-		self.dt_map = {
-			"Contact": {
-				"email_field": "email_id",
-				"first_name_field": "first_name",
-			},
-			"Lead": {
-				"email_field": "email_id",
-				"first_name_field": "lead_name"
-			}
-		}
-		self.query_map = {
-			"contacts": """select distinct email_id from `tabContact`
-				where ifnull(email_id, '') != '' """,
-			"customer_contacts": """select distinct email_id from `tabContact`
-				where ifnull(customer, '') != '' and ifnull(email_id, '') != '' """,
-			"leads": """select distinct email_id from `tabLead`
-				where ifnull(email_id, '') != '' """,
-			"active_leads": """select distinct email_id from `tabLead`
-				where status = "Open" and ifnull(email_id, '') != '' """,
-			"blog_subscribers": """select distinct email_id from `tabLead`
-				where ifnull(blog_subscriber,0) = 1 and ifnull(email_id, '') != '' """
-		}
-		
+
+	def test_send(self, doctype="Lead"):
+		self.recipients = self.doc.test_email_id.split(",")
+		self.send_bulk()
+		webnotes.msgprint("""Scheduled to send to %s""" % self.doc.test_email_id)
+
 	def send_emails(self):
 		"""send emails to leads and customers"""
 		if self.doc.email_sent:
 			webnotes.msgprint("""Newsletter has already been sent""", raise_exception=1)
 
-		self.all_recipients = []
-		self.send_count = {}
+		self.recipients = self.get_recipients()
+		self.send_bulk()
 		
-		if self.doc.contacts:
-			self.send("contacts", "Contact")
-		elif self.doc.customer_contacts:
-			self.send("customer_contacts", "Contact")
-		
-		if self.doc.leads:
-			self.send("leads", "Lead")
-		else:
-			if self.doc.active_leads:
-				self.send("active_leads", "Lead")
+		webnotes.msgprint("""Scheduled to send to %d %s(s)""" % (len(self.recipients), 
+			self.send_to_doctype))
+
+		webnotes.conn.set(self.doc, "email_sent", 1)
+	
+	def get_recipients(self):
+		if self.doc.send_to_type=="Contact":
+			self.send_to_doctype = "Contact"
+			if self.doc.contact_type == "Customer":		
+				return webnotes.conn.sql_list("""select email_id from tabContact 
+					where ifnull(email_id, '') != '' and ifnull(customer, '') != ''""")
+
+			elif self.doc.contact_type == "Supplier":		
+				return webnotes.conn.sql_list("""select email_id from tabContact 
+					where ifnull(email_id, '') != '' and ifnull(supplier, '') != ''""")
+	
+		elif self.doc.send_to_type=="Lead":
+			self.send_to_doctype = "Lead"
+			conditions = []
+			if self.doc.lead_source and self.doc.lead_source != "All":
+				conditions.append(" and source='%s'" % self.doc.lead_source)
+			if self.doc.lead_status and self.doc.lead_status != "All":
+				conditions.append(" and status='%s'" % self.doc.lead_status)
+
+			if conditions:
+				conditions = "".join(conditions)
 				
-			if self.doc.blog_subscribers:
-				self.send("blog_subscribers", "Lead")
-				
-		if self.doc.email_list:
+			return webnotes.conn.sql_list("""select email_id from tabLead 
+				where ifnull(email_id, '') != '' %s""" % (conditions or ""))
+
+		elif self.doc.email_list:
 			email_list = [cstr(email).strip() for email in self.doc.email_list.split(",")]
 			for email in email_list:
 				if not webnotes.conn.exists({"doctype": "Lead", "email_id": email}):
 					create_lead(email)
-			
-			self.send(email_list, "Lead")
-		
-		webnotes.msgprint("""Scheduled to send to %s""" % \
-			", ".join(["%d %s(s)" % (self.send_count[s], s) for s in self.send_count]))
-			
-	def test_send(self, doctype="Lead"):
+					
+			self.send_to_doctype = "Lead"
+			return email_list
+	
+	def send_bulk(self):
 		self.validate_send()
 
-		args = self.dt_map[doctype]
-
 		sender = self.doc.send_from or webnotes.utils.get_formatted_email(self.doc.owner)
-		recipients = self.doc.test_email_id.split(",")
+		
 		from webnotes.utils.email_lib.bulk import send
-		send(recipients = recipients, sender = sender, 
-			subject = self.doc.subject, message = self.doc.message,
-			doctype = doctype, email_field = args["email_field"])
-		webnotes.msgprint("""Scheduled to send to %s""" % self.doc.test_email_id)
-		
-	def get_recipients(self, key):
-		recipients = webnotes.conn.sql(self.query_map[key])
-		recipients = [r[0] for r in recipients if r not in self.all_recipients]
-		self.all_recipients += recipients
-		return recipients
-		
-	def send(self, query_key, doctype):
-		self.validate_send()
-
 		webnotes.conn.auto_commit_on_many_writes = True
-		if isinstance(query_key, basestring) and self.query_map.has_key(query_key):
-			recipients = self.get_recipients(query_key)
-		else:
-			recipients = query_key
-		sender = self.doc.send_from or webnotes.utils.get_formatted_email(self.doc.owner)
-		args = self.dt_map[doctype]
-		self.send_count[doctype] = self.send_count.setdefault(doctype, 0) + \
-			len(recipients)
 		
-		from webnotes.utils.email_lib.bulk import send
-		send(recipients = recipients, sender = sender, 
+		send(recipients = self.recipients, sender = sender, 
 			subject = self.doc.subject, message = self.doc.message,
-			doctype = doctype, email_field = args["email_field"])
+			doctype = self.send_to_doctype, email_field = "email_id")
 
-		webnotes.conn.set(self.doc, "email_sent", 1)
+		webnotes.conn.auto_commit_on_many_writes = False
 
 	def validate_send(self):
 		if self.doc.fields.get("__islocal"):
@@ -130,6 +102,14 @@
 			webnotes.msgprint(_("""Sending newsletters is not allowed for Trial users, \
 				to prevent abuse of this feature."""), raise_exception=1)
 
+@webnotes.whitelist()
+def get_lead_options():
+	return {
+		"sources": ["All"] + webnotes.conn.sql_list("""select distinct source from tabLead"""),
+		"statuses": ["All"]+ webnotes.conn.sql_list("""select distinct status from tabLead""")
+	}
+
+
 lead_naming_series = None
 def create_lead(email_id):
 	"""create a lead if it does not exist"""
diff --git a/support/doctype/newsletter/newsletter.txt b/support/doctype/newsletter/newsletter.txt
index 3ffd5a0..dbab81e 100644
--- a/support/doctype/newsletter/newsletter.txt
+++ b/support/doctype/newsletter/newsletter.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-01-10 16:34:31", 
   "docstatus": 0, 
-  "modified": "2013-01-28 15:28:59", 
+  "modified": "2013-02-11 17:23:08", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -58,33 +58,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "contacts", 
-  "fieldtype": "Check", 
-  "label": "All Contacts"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "customer_contacts", 
-  "fieldtype": "Check", 
-  "label": "All Customer Contacts"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "leads", 
-  "fieldtype": "Check", 
-  "label": "All Leads"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "active_leads", 
-  "fieldtype": "Check", 
-  "label": "All Active Leads"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "blog_subscribers", 
-  "fieldtype": "Check", 
-  "label": "All Blog Subscribers"
+  "fieldname": "send_to_type", 
+  "fieldtype": "Select", 
+  "label": "Send To Type", 
+  "options": "Lead\nContact\nCustom"
  }, 
  {
   "doctype": "DocField", 
@@ -92,6 +69,29 @@
   "fieldtype": "Column Break"
  }, 
  {
+  "depends_on": "eval:doc.send_to_type==\"Lead\"", 
+  "doctype": "DocField", 
+  "fieldname": "lead_source", 
+  "fieldtype": "Select", 
+  "label": "Lead Source"
+ }, 
+ {
+  "depends_on": "eval:doc.send_to_type==\"Lead\"", 
+  "doctype": "DocField", 
+  "fieldname": "lead_status", 
+  "fieldtype": "Select", 
+  "label": "Lead Status"
+ }, 
+ {
+  "depends_on": "eval:doc.send_to_type==\"Contact\"", 
+  "doctype": "DocField", 
+  "fieldname": "contact_type", 
+  "fieldtype": "Select", 
+  "label": "Contact Type", 
+  "options": "Customer\nSupplier\nCustom"
+ }, 
+ {
+  "depends_on": "eval:doc.send_to_type==\"Custom\"", 
   "description": "Comma separated list of email addresses", 
   "doctype": "DocField", 
   "fieldname": "email_list", 
diff --git a/support/doctype/newsletter/test_newsletter.py b/support/doctype/newsletter/test_newsletter.py
new file mode 100644
index 0000000..98ad21f
--- /dev/null
+++ b/support/doctype/newsletter/test_newsletter.py
@@ -0,0 +1,58 @@
+import webnotes, unittest
+
+class TestNewsletter(unittest.TestCase):
+	def test_get_recipients_lead(self):
+		w = webnotes.model_wrapper(test_records[0])
+		w.insert()
+		self.assertTrue("test_lead@example.com" in w.controller.get_recipients())
+		webnotes.conn.sql("""delete from `tabBulk Email`""")
+		w.controller.send_emails()
+		self.assertTrue(webnotes.conn.get_value("Bulk Email", {"recipient": "test_lead@example.com"}))
+
+	def test_get_recipients_lead_by_status(self):
+		w = webnotes.model_wrapper(test_records[0])
+		w.doc.lead_status="Converted"
+		w.insert()
+		self.assertTrue("test_lead3@example.com" in w.controller.get_recipients())
+
+	def test_get_recipients_contact_customer(self):
+		w = webnotes.model_wrapper(test_records[1])
+		w.insert()
+		self.assertTrue("test_contact_customer@example.com" in w.controller.get_recipients())
+
+	def test_get_recipients_contact_supplier(self):
+		w = webnotes.model_wrapper(test_records[1])
+		w.doc.contact_type="Supplier"
+		w.insert()
+		self.assertTrue("test_contact_supplier@example.com" in w.controller.get_recipients())
+
+	def test_get_recipients_custom(self):
+		w = webnotes.model_wrapper(test_records[2])
+		w.insert()
+		self.assertTrue("test_custom2@example.com" in w.controller.get_recipients())
+		self.assertTrue(webnotes.conn.get("Lead", 
+			{"email_id": "test_custom2@example.com"}))
+
+
+test_dependencies = ["Lead", "Contact"]
+
+test_records =[
+	[{
+		"subject": "_Test Newsletter to Lead",
+		"send_to_type": "Lead",
+		"lead_source": "All",
+		"message": "This is a test newsletter"
+	}],
+	[{
+		"subject": "_Test Newsletter to Contact",
+		"send_to_type": "Contact",
+		"contact_type": "Customer",
+		"message": "This is a test newsletter"
+	}],
+	[{
+		"subject": "_Test Newsletter to Custom",
+		"send_to_type": "Custom",
+		"email_list": "test_custom@example.com, test_custom1@example.com, test_custom2@example.com",
+		"message": "This is a test newsletter"
+	}],
+]
diff --git a/utilities/doctype/contact/test_contact.py b/utilities/doctype/contact/test_contact.py
new file mode 100644
index 0000000..d16e93d
--- /dev/null
+++ b/utilities/doctype/contact/test_contact.py
@@ -0,0 +1,22 @@
+test_records = [
+	[{
+		"doctype": "Contact",
+		"customer": "_Test Customer",
+		"customer_name": "_Test Customer",
+		"first_name": "_Test Contact For _Test Customer",
+		"email_id": "test_contact_customer@example.com",
+		"phone": "+91 0000000000",
+		"status": "Open",
+		"is_primary_contact": 1
+	}],
+	[{
+		"doctype": "Contact",
+		"supplier": "_Test Supplier",
+		"supplier_name": "_Test Supplier",
+		"first_name": "_Test Contact For _Test Supplier",
+		"email_id": "test_contact_supplier@example.com",
+		"phone": "+91 0000000000",
+		"status": "Open",
+		"is_primary_contact": 1
+	}]
+]
\ No newline at end of file
