test: Added test for get_item_tax_template and get_item_tax_map
diff --git a/erpnext/accounts/doctype/item_tax_template/test_records.json b/erpnext/accounts/doctype/item_tax_template/test_records.json
index 8422eb4..db540e8 100644
--- a/erpnext/accounts/doctype/item_tax_template/test_records.json
+++ b/erpnext/accounts/doctype/item_tax_template/test_records.json
@@ -10,5 +10,65 @@
     "tax_type": "_Test Account Excise Duty - _TC"
    }
   ]
+ },
+ {
+  "doctype": "Item Tax Template",
+  "title": "_Test Account Excise Duty @ 12",
+  "taxes": [
+   {
+    "doctype": "Item Tax Template Detail",
+    "parentfield": "taxes",
+    "tax_rate": 12,
+    "tax_type": "_Test Account Excise Duty - _TC"
+   }
+  ]
+ },
+ {
+  "doctype": "Item Tax Template",
+  "title": "_Test Account Excise Duty @ 15",
+  "taxes": [
+   {
+    "doctype": "Item Tax Template Detail",
+    "parentfield": "taxes",
+    "tax_rate": 15,
+    "tax_type": "_Test Account Excise Duty - _TC"
+   }
+  ]
+ },
+ {
+  "doctype": "Item Tax Template",
+  "title": "_Test Account Excise Duty @ 20",
+  "taxes": [
+   {
+    "doctype": "Item Tax Template Detail",
+    "parentfield": "taxes",
+    "tax_rate": 20,
+    "tax_type": "_Test Account Excise Duty - _TC"
+   }
+  ]
+ },
+ {
+  "doctype": "Item Tax Template",
+  "title": "_Test Item Tax Template 1",
+  "taxes": [
+   {
+    "doctype": "Item Tax Template Detail",
+    "parentfield": "taxes",
+    "tax_rate": 5,
+    "tax_type": "_Test Account Excise Duty - _TC"
+   },
+   {
+    "doctype": "Item Tax Template Detail",
+    "parentfield": "taxes",
+    "tax_rate": 10,
+    "tax_type": "_Test Account Education Cess - _TC"
+   },
+   {
+    "doctype": "Item Tax Template Detail",
+    "parentfield": "taxes",
+    "tax_rate": 15,
+    "tax_type": "_Test Account S&H Education Cess - _TC"
+   }
+  ]
  }
 ]
diff --git a/erpnext/setup/doctype/item_group/test_records.json b/erpnext/setup/doctype/item_group/test_records.json
index 436535e..7115964 100644
--- a/erpnext/setup/doctype/item_group/test_records.json
+++ b/erpnext/setup/doctype/item_group/test_records.json
@@ -69,5 +69,39 @@
   "is_group": 1, 
   "item_group_name": "_Test Item Group D", 
   "parent_item_group": "All Item Groups"
+ },
+ {
+  "doctype": "Item Group",
+  "is_group": 1,
+  "item_group_name": "_Test Item Group Tax Parent",
+  "parent_item_group": "All Item Groups",
+  "taxes": [
+   {
+    "doctype": "Item Tax",
+    "parentfield": "taxes",
+    "item_tax_template": "_Test Account Excise Duty @ 10",
+    "tax_category": ""
+   },
+   {
+    "doctype": "Item Tax",
+    "parentfield": "taxes",
+    "item_tax_template": "_Test Account Excise Duty @ 12",
+    "tax_category": "_Test Tax Category 1"
+   }
+  ]
+ },
+ {
+  "doctype": "Item Group",
+  "is_group": 0,
+  "item_group_name": "_Test Item Group Tax Child Override",
+  "parent_item_group": "_Test Item Group Tax Parent",
+  "taxes": [
+   {
+    "doctype": "Item Tax",
+    "parentfield": "taxes",
+    "item_tax_template": "_Test Account Excise Duty @ 15",
+    "tax_category": ""
+   }
+  ]
  }
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/item/test_item.py b/erpnext/stock/doctype/item/test_item.py
index 7d59669..6c9c5c9 100644
--- a/erpnext/stock/doctype/item/test_item.py
+++ b/erpnext/stock/doctype/item/test_item.py
@@ -4,6 +4,7 @@
 from __future__ import unicode_literals
 import unittest
 import frappe
+import json
 
 from frappe.test_runner import make_test_objects
 from erpnext.controllers.item_variant import (create_variant, ItemVariantExistsError,
@@ -76,7 +77,6 @@
 			"amount": 0.0,
 			"base_amount": 0.0,
 			"batch_no": None,
-			"item_tax_rate": '{}',
 			"uom": "_Test UOM",
 			"conversion_factor": 1.0,
 		}
@@ -102,6 +102,68 @@
 		for key, value in iteritems(to_check):
 			self.assertEqual(value, details.get(key))
 
+	def test_item_tax_template(self):
+		expected_item_tax_template = [
+			{"item_code": "_Test Item With Item Tax Template", "tax_category": "",
+				"item_tax_template": "_Test Account Excise Duty @ 10"},
+			{"item_code": "_Test Item With Item Tax Template", "tax_category": "_Test Tax Category 1",
+				"item_tax_template": "_Test Account Excise Duty @ 12"},
+			{"item_code": "_Test Item With Item Tax Template", "tax_category": "_Test Tax Category 2",
+				"item_tax_template": None},
+
+			{"item_code": "_Test Item Inherit Group Item Tax Template 1", "tax_category": "",
+				"item_tax_template": "_Test Account Excise Duty @ 10"},
+			{"item_code": "_Test Item Inherit Group Item Tax Template 1", "tax_category": "_Test Tax Category 1",
+				"item_tax_template": "_Test Account Excise Duty @ 12"},
+			{"item_code": "_Test Item Inherit Group Item Tax Template 1", "tax_category": "_Test Tax Category 2",
+				"item_tax_template": None},
+
+			{"item_code": "_Test Item Inherit Group Item Tax Template 2", "tax_category": "",
+				"item_tax_template": "_Test Account Excise Duty @ 15"},
+			{"item_code": "_Test Item Inherit Group Item Tax Template 2", "tax_category": "_Test Tax Category 1",
+				"item_tax_template": "_Test Account Excise Duty @ 12"},
+			{"item_code": "_Test Item Inherit Group Item Tax Template 2", "tax_category": "_Test Tax Category 2",
+				"item_tax_template": None},
+
+			{"item_code": "_Test Item Override Group Item Tax Template", "tax_category": "",
+				"item_tax_template": "_Test Account Excise Duty @ 20"},
+			{"item_code": "_Test Item Override Group Item Tax Template", "tax_category": "_Test Tax Category 1",
+				"item_tax_template": "_Test Item Tax Template 1"},
+			{"item_code": "_Test Item Override Group Item Tax Template", "tax_category": "_Test Tax Category 2",
+				"item_tax_template": None},
+		]
+
+		expected_item_tax_map = {
+			None: {},
+			"_Test Account Excise Duty @ 10": {"_Test Account Excise Duty - _TC": 10},
+			"_Test Account Excise Duty @ 12": {"_Test Account Excise Duty - _TC": 12},
+			"_Test Account Excise Duty @ 15": {"_Test Account Excise Duty - _TC": 15},
+			"_Test Account Excise Duty @ 20": {"_Test Account Excise Duty - _TC": 20},
+			"_Test Item Tax Template 1": {"_Test Account Excise Duty - _TC": 5, "_Test Account Education Cess - _TC": 10,
+				"_Test Account S&H Education Cess - _TC": 15}
+		}
+
+		for data in expected_item_tax_template:
+			details = get_item_details({
+				"item_code": data['item_code'],
+				"tax_category": data['tax_category'],
+				"company": "_Test Company",
+				"price_list": "_Test Price List",
+				"currency": "_Test Currency",
+				"doctype": "Sales Order",
+				"conversion_rate": 1,
+				"price_list_currency": "_Test Currency",
+				"plc_conversion_rate": 1,
+				"order_type": "Sales",
+				"customer": "_Test Customer",
+				"conversion_factor": 1,
+				"price_list_uom_dependant": 1,
+				"ignore_pricing_rule": 1
+			})
+
+			self.assertEqual(details.item_tax_template, data['item_tax_template'])
+			self.assertEqual(json.loads(details.item_tax_rate), expected_item_tax_map[details.item_tax_template])
+
 	def test_item_attribute_change_after_variant(self):
 		frappe.delete_doc_if_exists("Item", "_Test Variant Item-L", force=1)
 
diff --git a/erpnext/stock/doctype/item/test_records.json b/erpnext/stock/doctype/item/test_records.json
index 4cba579..b09a3c0 100644
--- a/erpnext/stock/doctype/item/test_records.json
+++ b/erpnext/stock/doctype/item/test_records.json
@@ -344,5 +344,121 @@
   "stock_uom": "_Test UOM",
   "show_in_website": 1,
   "website_warehouse": "_Test Warehouse Group-C1 - _TC"
+ },
+ {
+  "description": "_Test Item With Item Tax Template",
+  "doctype": "Item",
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "inspection_required": 0,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "_Test Item With Item Tax Template",
+  "item_group": "_Test Item Group",
+  "item_name": "_Test Item With Item Tax Template",
+  "stock_uom": "_Test UOM",
+  "gst_hsn_code": "999800",
+  "item_defaults": [{
+    "company": "_Test Company",
+    "default_warehouse": "_Test Warehouse - _TC",
+    "expense_account": "_Test Account Cost for Goods Sold - _TC",
+    "buying_cost_center": "_Test Cost Center - _TC",
+    "selling_cost_center": "_Test Cost Center - _TC",
+    "income_account": "Sales - _TC"
+  }],
+  "taxes": [
+   {
+    "doctype": "Item Tax",
+    "parentfield": "taxes",
+    "item_tax_template": "_Test Account Excise Duty @ 10",
+    "tax_category": ""
+   },
+   {
+    "doctype": "Item Tax",
+    "parentfield": "taxes",
+    "item_tax_template": "_Test Account Excise Duty @ 12",
+    "tax_category": "_Test Tax Category 1"
+   }
+  ]
+ },
+ {
+  "description": "_Test Item Inherit Group Item Tax Template 1",
+  "doctype": "Item",
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "inspection_required": 0,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "_Test Item Inherit Group Item Tax Template 1",
+  "item_group": "_Test Item Group Tax Parent",
+  "item_name": "_Test Item Inherit Group Item Tax Template 1",
+  "stock_uom": "_Test UOM",
+  "gst_hsn_code": "999800",
+  "item_defaults": [{
+    "company": "_Test Company",
+    "default_warehouse": "_Test Warehouse - _TC",
+    "expense_account": "_Test Account Cost for Goods Sold - _TC",
+    "buying_cost_center": "_Test Cost Center - _TC",
+    "selling_cost_center": "_Test Cost Center - _TC",
+    "income_account": "Sales - _TC"
+  }]
+ },
+ {
+  "description": "_Test Item Inherit Group Item Tax Template 2",
+  "doctype": "Item",
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "inspection_required": 0,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "_Test Item Inherit Group Item Tax Template 2",
+  "item_group": "_Test Item Group Tax Child Override",
+  "item_name": "_Test Item Inherit Group Item Tax Template 2",
+  "stock_uom": "_Test UOM",
+  "gst_hsn_code": "999800",
+  "item_defaults": [{
+    "company": "_Test Company",
+    "default_warehouse": "_Test Warehouse - _TC",
+    "expense_account": "_Test Account Cost for Goods Sold - _TC",
+    "buying_cost_center": "_Test Cost Center - _TC",
+    "selling_cost_center": "_Test Cost Center - _TC",
+    "income_account": "Sales - _TC"
+  }]
+ },
+ {
+  "description": "_Test Item Override Group Item Tax Template",
+  "doctype": "Item",
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "inspection_required": 0,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
+  "item_code": "_Test Item Override Group Item Tax Template",
+  "item_group": "_Test Item Group Tax Child Override",
+  "item_name": "_Test Item Override Group Item Tax Template",
+  "stock_uom": "_Test UOM",
+  "gst_hsn_code": "999800",
+  "item_defaults": [{
+    "company": "_Test Company",
+    "default_warehouse": "_Test Warehouse - _TC",
+    "expense_account": "_Test Account Cost for Goods Sold - _TC",
+    "buying_cost_center": "_Test Cost Center - _TC",
+    "selling_cost_center": "_Test Cost Center - _TC",
+    "income_account": "Sales - _TC"
+  }],
+  "taxes": [
+   {
+    "doctype": "Item Tax",
+    "parentfield": "taxes",
+    "item_tax_template": "_Test Account Excise Duty @ 20",
+    "tax_category": ""
+   },
+   {
+    "doctype": "Item Tax",
+    "parentfield": "taxes",
+    "item_tax_template": "_Test Item Tax Template 1",
+    "tax_category": "_Test Tax Category 1"
+   }
+  ]
  }
 ]