[py3] Use OrderedDict to avoid non deterministic ordering in tests
@@ -20,6 +20,7 @@ from builtins import object
import json
import sys
+from collections import OrderedDict
from nose.tools import assert_equal, assert_true
from desktop.lib.django_test_util import make_logged_in_client
@@ -33,9 +34,10 @@ else:
from mock import patch, Mock, MagicMock
-table_properties_py2 = '"transactional" = "false", "skip.header.line.count" = "1"'
-table_properties_py3 = '"skip.header.line.count" = "1", "transactional" = "false"'
-is_py3 = sys.version_info[0] > 2
+TABLE_PROPERTIES = [
+ '%s = %s' % (key, val)
+ for key, val in OrderedDict({"transactional": "false", "skip.header.line.count": "1"}).items()
+]
class TestSQLIndexer(object):
@@ -158,7 +160,7 @@ ROW FORMAT DELIMITED
COLLECTION ITEMS TERMINATED BY '\\002'
MAP KEYS TERMINATED BY '\\003'
STORED AS TextFile TBLPROPERTIES(%s)
-;''' % table_properties_py3 if is_py3 else table_properties_py2
+;''' % TABLE_PROPERTIES
assert_true(statement in sql, sql)
assert_true('''LOAD DATA INPATH '/user/romain/customer_stats.csv' INTO TABLE `default`.`customer_stats` PARTITION (new_field_1='AAA');''' in sql, sql)
@@ -196,7 +198,7 @@ def test_generate_create_kudu_table_with_data():
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TextFile LOCATION '/A'
-TBLPROPERTIES(%s)''' % table_properties_py3 if is_py3 else table_properties_py2
+TBLPROPERTIES(%s)''' % TABLE_PROPERTIES
assert_true(statement in sql in sql, sql)
assert_true('''CREATE TABLE `default`.`index_data` COMMENT "Big Data"
@@ -234,7 +236,7 @@ def test_generate_create_parquet_table():
MAP KEYS TERMINATED BY '\\003'
STORED AS TextFile LOCATION '/user/hue/data'
TBLPROPERTIES(%s)
-;''' % table_properties_py3 if is_py3 else table_properties_py2
+;''' % TABLE_PROPERTIES
assert_true(statement in sql, sql)
assert_true('''CREATE TABLE `default`.`parquet_table`
@@ -271,7 +273,7 @@ def test_generate_create_orc_table_transactional():
MAP KEYS TERMINATED BY '\\003'
STORED AS TextFile LOCATION '/user/hue/data'
TBLPROPERTIES(%s)
-;''' % table_properties_py3 if is_py3 else table_properties_py2
+;''' % TABLE_PROPERTIES
assert_true(statement in sql in sql, sql)
assert_true('''CREATE TABLE `default`.`parquet_table`
