Inspection required before delivery isn't working for item variants (#9362)

* makes `copy_attributes_to_variant` to not ignore "Table"

* fixes test cases - `test_auto_material_request` and `test_auto_material_request_for_variant`

* adds test case - tables in templates should be copied to variants

* [ci] use deprecated trusty build for now
diff --git a/erpnext/controllers/item_variant.py b/erpnext/controllers/item_variant.py
index 3349303..226b17f 100644
--- a/erpnext/controllers/item_variant.py
+++ b/erpnext/controllers/item_variant.py
@@ -169,6 +169,7 @@
 
 	return variant
 
+
 def copy_attributes_to_variant(item, variant):
 	from frappe.model import no_value_fields
 
@@ -181,8 +182,9 @@
 		exclude_fields += ['manufacturer', 'manufacturer_part_no']
 
 	for field in item.meta.fields:
-		if field.fieldtype not in no_value_fields and (not field.no_copy)\
-			and field.fieldname not in exclude_fields:
+		# "Table" is part of `no_value_field` but we shouldn't ignore tables
+		if (field.fieldtype == 'Table' or field.fieldtype not in no_value_fields) \
+			and (not field.no_copy) and field.fieldname not in exclude_fields:
 			if variant.get(field.fieldname) != item.get(field.fieldname):
 				variant.set(field.fieldname, item.get(field.fieldname))
 	variant.variant_of = item.name
diff --git a/erpnext/controllers/tests/test_item_variant.py b/erpnext/controllers/tests/test_item_variant.py
new file mode 100644
index 0000000..9fc45d2
--- /dev/null
+++ b/erpnext/controllers/tests/test_item_variant.py
@@ -0,0 +1,58 @@
+from __future__ import unicode_literals
+
+import frappe
+import json
+import unittest
+
+from erpnext.controllers.item_variant import copy_attributes_to_variant, make_variant_item_code
+
+# python 3 compatibility stuff
+try:
+	unicode = unicode
+except NameError:
+	# Python 3
+	basestring = (str, bytes)
+else:
+	# Python 2
+	basestring = basestring
+
+
+def create_variant_with_tables(item, args):
+	if isinstance(args, basestring):
+		args = json.loads(args)
+
+	template = frappe.get_doc("Item", item)
+	template.quality_parameters.append({
+		"specification": "Moisture",
+		"value": "< 5%",
+	})
+	variant = frappe.new_doc("Item")
+	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.set("attributes", variant_attributes)
+	copy_attributes_to_variant(template, variant)
+	make_variant_item_code(template.item_code, template.item_name, variant)
+
+	return variant
+
+
+def make_item_variant():
+	frappe.delete_doc_if_exists("Item", "_Test Variant Item-S", force=1)
+	variant = create_variant_with_tables("_Test Variant Item", '{"Test Size": "Small"}')
+	variant.item_code = "_Test Variant Item-S"
+	variant.item_name = "_Test Variant Item-S"
+	variant.save()
+	return variant
+
+
+class TestItemVariant(unittest.TestCase):
+	def test_tables_in_template_copied_to_variant(self):
+		variant = make_item_variant()
+		self.assertNotEqual(variant.get("quality_parameters"), [])