chore: Python 3 Tests on Travis (#18012)

chore: Python 3 Tests on Travis
diff --git a/.travis.yml b/.travis.yml
index 869fe95..a8a0d82 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,6 +3,11 @@
 
 python:
   - "2.7"
+  - "3.6"
+
+env:
+  - TEST_TYPE="Server Side Test"
+  - TEST_TYPE="Patch Test"
 
 services:
   - mysql
@@ -39,18 +44,8 @@
   - bench start &
   - sleep 10
 
-jobs:
-  include:
-    - stage: test
-      script:
-        - set -e
-        - bench run-tests --app erpnext --coverage
-      after_script:
-        - coveralls -b apps/erpnext -d ../../sites/.coverage
-      env: Server Side Test
-    - # stage
-      script:
-        - wget http://build.erpnext.com/20171108_190013_955977f8_database.sql.gz
-        - bench --force restore ~/frappe-bench/20171108_190013_955977f8_database.sql.gz --mariadb-root-password travis
-        - bench migrate
-      env: Patch Testing
+script:
+  - bash $TRAVIS_BUILD_DIR/travis/run-tests.sh
+
+after_script:
+  - coveralls -b apps/erpnext -d ../../sites/.coverage
diff --git a/erpnext/accounts/doctype/pricing_rule/utils.py b/erpnext/accounts/doctype/pricing_rule/utils.py
index 8a8e329..5795b8f 100644
--- a/erpnext/accounts/doctype/pricing_rule/utils.py
+++ b/erpnext/accounts/doctype/pricing_rule/utils.py
@@ -232,7 +232,7 @@
 	if len(pricing_rules) > 1:
 		rate_or_discount = list(set([d.rate_or_discount for d in pricing_rules]))
 		if len(rate_or_discount) == 1 and rate_or_discount[0] == "Discount Percentage":
-			pricing_rules = filter(lambda x: x.for_price_list==args.price_list, pricing_rules) \
+			pricing_rules = list(filter(lambda x: x.for_price_list==args.price_list, pricing_rules)) \
 				or pricing_rules
 
 	if len(pricing_rules) > 1 and not args.for_shopping_cart:
diff --git a/travis/run-tests.sh b/travis/run-tests.sh
new file mode 100755
index 0000000..7cfd648
--- /dev/null
+++ b/travis/run-tests.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+set -e
+
+if [[ $TEST_TYPE == 'Server Side Test' ]]; then
+    bench run-tests --app erpnext --coverage
+
+elif [[ $TEST_TYPE == 'Patch Test' ]]; then
+    wget http://build.erpnext.com/20171108_190013_955977f8_database.sql.gz
+    bench --force restore ~/frappe-bench/20171108_190013_955977f8_database.sql.gz --mariadb-root-password travis
+    bench migrate
+fi