IMPALA-4750: Rename test infra classes so they don't mimic test classes.

This patch addresses warning messages from pytest re: the imported
TestMatrix, TestVector, and TestDimension classes, which were being
collected as potential test classes. The fix was to simply prepend
the class names with Impala-

git grep -l 'TestDimension' | xargs \
    sed -i 's/TestDimension/ImpalaTestDimension/g'

git grep -l 'TestMatrix' | xargs \
    sed -i 's/TestMatrix/ImpalaTestMatrix/g'

git grep -l 'TestVector' | xargs \
    sed -i 's/TestVector/ImpalaTestVector/g'

The tests all passed in an exhaustive run on the upstream jenkins
server:

http://jenkins.impala.io:8080/view/Utility/job/pre-review-test/8/

Change-Id: I06b7bc6fd99fbb637a47ba376bf9830705c1fce1
Reviewed-on: http://gerrit.cloudera.org:8080/5794
Reviewed-by: Michael Brown <[email protected]>
Reviewed-by: Jim Apple <[email protected]>
Tested-by: Impala Public Jenkins


Project: http://git-wip-us.apache.org/repos/asf/incubator-impala/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-impala/commit/f590bc0d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-impala/tree/f590bc0d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-impala/diff/f590bc0d

Branch: refs/heads/master
Commit: f590bc0da63ea957aa2be21f2dda8d67e6794d68
Parents: 253ea71
Author: David Knupp <[email protected]>
Authored: Fri Jan 6 11:00:59 2017 -0800
Committer: Impala Public Jenkins <[email protected]>
Committed: Thu Jan 26 23:40:22 2017 +0000

----------------------------------------------------------------------
 tests/authorization/test_grant_revoke.py        |  3 +-
 .../test_catalog_service_client.py              |  4 +-
 tests/catalog_service/test_hms_failure.py       |  4 +-
 .../test_large_num_partitions.py                |  4 +-
 tests/common/base_test_suite.py                 |  6 +-
 tests/common/custom_cluster_test_suite.py       |  4 +-
 tests/common/impala_test_suite.py               |  8 +--
 tests/common/kudu_test_suite.py                 |  3 +-
 tests/common/test_dimensions.py                 | 10 +--
 tests/common/test_vector.py                     | 72 ++++++++++----------
 tests/conftest.py                               |  2 +-
 .../custom_cluster/test_admission_controller.py | 26 ++++---
 .../test_hive_parquet_timestamp_conversion.py   |  2 +-
 .../test_parquet_max_page_header.py             |  2 +-
 tests/custom_cluster/test_permanent_udfs.py     |  3 +-
 tests/custom_cluster/test_spilling.py           | 15 ++--
 tests/data_errors/test_data_errors.py           | 14 ++--
 tests/experiments/test_targeted_perf.py         |  5 +-
 tests/failure/test_failpoints.py                | 23 ++++---
 tests/metadata/test_compute_stats.py            | 19 +++---
 tests/metadata/test_ddl.py                      |  2 +-
 tests/metadata/test_ddl_base.py                 |  5 +-
 tests/metadata/test_explain.py                  |  2 +-
 tests/metadata/test_hdfs_encryption.py          | 18 +++--
 tests/metadata/test_hdfs_permissions.py         |  5 +-
 tests/metadata/test_hidden_files.py             |  7 +-
 tests/metadata/test_hms_integration.py          |  8 +--
 tests/metadata/test_last_ddl_time_update.py     |  4 +-
 tests/metadata/test_load.py                     |  5 +-
 .../metadata/test_metadata_query_statements.py  |  5 +-
 tests/metadata/test_partition_metadata.py       |  4 +-
 tests/metadata/test_recover_partitions.py       |  5 +-
 tests/metadata/test_refresh_partition.py        |  4 +-
 tests/metadata/test_set.py                      |  5 +-
 tests/metadata/test_show_create_table.py        |  7 +-
 tests/metadata/test_stale_metadata.py           |  4 +-
 tests/metadata/test_views_compatibility.py      |  5 +-
 tests/query_test/test_aggregation.py            | 19 +++---
 tests/query_test/test_analytic_tpcds.py         |  6 +-
 tests/query_test/test_avro_schema_resolution.py |  2 +-
 tests/query_test/test_cancellation.py           | 72 ++++++++++++--------
 tests/query_test/test_chars.py                  |  8 +--
 tests/query_test/test_compressed_formats.py     | 26 +++----
 tests/query_test/test_decimal_casting.py        | 10 +--
 tests/query_test/test_decimal_queries.py        | 10 +--
 tests/query_test/test_delimited_text.py         |  5 +-
 tests/query_test/test_errorlog.py               |  4 +-
 tests/query_test/test_exprs.py                  | 14 ++--
 tests/query_test/test_hash_join_timer.py        |  7 +-
 tests/query_test/test_hbase_queries.py          |  2 +-
 tests/query_test/test_hdfs_caching.py           |  8 +--
 tests/query_test/test_hdfs_fd_caching.py        |  2 +-
 tests/query_test/test_insert.py                 | 36 +++++-----
 tests/query_test/test_insert_parquet.py         | 34 +++++----
 tests/query_test/test_insert_permutation.py     |  5 +-
 tests/query_test/test_invalid_test_header.py    |  2 +-
 tests/query_test/test_join_queries.py           | 26 +++----
 tests/query_test/test_limit.py                  | 16 ++---
 tests/query_test/test_local_fs.py               |  4 +-
 tests/query_test/test_mem_usage_scaling.py      | 25 +++----
 tests/query_test/test_mt_dop.py                 | 10 +--
 tests/query_test/test_multiple_filesystems.py   |  4 +-
 tests/query_test/test_nested_types.py           |  6 +-
 tests/query_test/test_partitioning.py           |  4 +-
 tests/query_test/test_queries.py                | 17 ++---
 tests/query_test/test_query_mem_limit.py        | 23 ++++---
 tests/query_test/test_query_opts.py             |  8 +--
 tests/query_test/test_rows_availability.py      |  6 +-
 tests/query_test/test_runtime_filters.py        |  4 +-
 tests/query_test/test_scanners.py               | 40 +++++------
 tests/query_test/test_scanners_fuzz.py          |  4 +-
 tests/query_test/test_scratch_limit.py          |  4 +-
 tests/query_test/test_sort.py                   |  2 +-
 tests/query_test/test_timezones.py              |  2 +-
 tests/query_test/test_tpcds_queries.py          | 12 ++--
 tests/query_test/test_tpch_nested_queries.py    |  4 +-
 tests/query_test/test_tpch_queries.py           |  4 +-
 tests/query_test/test_udfs.py                   |  8 ++-
 tests/stress/test_ddl_stress.py                 |  9 +--
 tests/stress/test_mini_stress.py                |  8 +--
 tests/unittests/test_result_verifier.py         |  3 +-
 81 files changed, 457 insertions(+), 392 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/authorization/test_grant_revoke.py
----------------------------------------------------------------------
diff --git a/tests/authorization/test_grant_revoke.py 
b/tests/authorization/test_grant_revoke.py
index 07194d9..1a191ba 100644
--- a/tests/authorization/test_grant_revoke.py
+++ b/tests/authorization/test_grant_revoke.py
@@ -32,7 +32,8 @@ class TestGrantRevoke(CustomClusterTestSuite, 
ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestGrantRevoke, cls).add_test_dimensions()
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_dimension(
+        create_uncompressed_text_dimension(cls.get_workload()))
 
   @classmethod
   def get_workload(cls):

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/catalog_service/test_catalog_service_client.py
----------------------------------------------------------------------
diff --git a/tests/catalog_service/test_catalog_service_client.py 
b/tests/catalog_service/test_catalog_service_client.py
index a4527da..05a4f24 100644
--- a/tests/catalog_service/test_catalog_service_client.py
+++ b/tests/catalog_service/test_catalog_service_client.py
@@ -46,10 +46,10 @@ class TestCatalogServiceClient(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestCatalogServiceClient, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
 
     # There is no reason to run these tests using all dimensions.
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('table_format').file_format == 'parquet' and\
         v.get_value('table_format').compression_codec == 'none')
 

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/catalog_service/test_hms_failure.py
----------------------------------------------------------------------
diff --git a/tests/catalog_service/test_hms_failure.py 
b/tests/catalog_service/test_hms_failure.py
index 1577f06..d98f0b4 100644
--- a/tests/catalog_service/test_hms_failure.py
+++ b/tests/catalog_service/test_hms_failure.py
@@ -34,10 +34,10 @@ class TestHiveMetaStoreFailure(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestHiveMetaStoreFailure, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
 
     # There is no reason to run these tests using all dimensions.
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('table_format').file_format == 'parquet' and\
         v.get_value('table_format').compression_codec == 'none')
 

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/catalog_service/test_large_num_partitions.py
----------------------------------------------------------------------
diff --git a/tests/catalog_service/test_large_num_partitions.py 
b/tests/catalog_service/test_large_num_partitions.py
index c2671e6..548723b 100644
--- a/tests/catalog_service/test_large_num_partitions.py
+++ b/tests/catalog_service/test_large_num_partitions.py
@@ -29,10 +29,10 @@ class TestLargeNumPartitions(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestLargeNumPartitions, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
 
     # There is no reason to run these tests using all dimensions.
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('table_format').file_format == 'text' and\
         v.get_value('table_format').compression_codec == 'none')
 

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/common/base_test_suite.py
----------------------------------------------------------------------
diff --git a/tests/common/base_test_suite.py b/tests/common/base_test_suite.py
index 8c87789..e4bb067 100644
--- a/tests/common/base_test_suite.py
+++ b/tests/common/base_test_suite.py
@@ -18,13 +18,13 @@
 # The base class that should be used for tests.
 import logging
 
-from tests.common.test_vector import TestMatrix
+from tests.common.test_vector import ImpalaTestMatrix
 
 LOG = logging.getLogger('base_test_suite')
 
 # Base class for tests.
 class BaseTestSuite(object):
-  TestMatrix = TestMatrix()
+  ImpalaTestMatrix = ImpalaTestMatrix()
 
   @classmethod
   def add_test_dimensions(cls):
@@ -34,4 +34,4 @@ class BaseTestSuite(object):
     By default load the table_info and exec_option dimensions, but if a test 
wants to
     add more dimensions or different dimensions they can override this 
function.
     """
-    cls.TestMatrix = TestMatrix()
+    cls.ImpalaTestMatrix = ImpalaTestMatrix()

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/common/custom_cluster_test_suite.py
----------------------------------------------------------------------
diff --git a/tests/common/custom_cluster_test_suite.py 
b/tests/common/custom_cluster_test_suite.py
index 365776a..28f598c 100644
--- a/tests/common/custom_cluster_test_suite.py
+++ b/tests/common/custom_cluster_test_suite.py
@@ -47,10 +47,10 @@ class CustomClusterTestSuite(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(CustomClusterTestSuite, cls).add_test_dimensions()
-    cls.TestMatrix.add_constraint(lambda v:
+    cls.ImpalaTestMatrix.add_constraint(lambda v:
         v.get_value('table_format').file_format == 'text' and
         v.get_value('table_format').compression_codec == 'none')
-    cls.TestMatrix.add_constraint(lambda v:
+    cls.ImpalaTestMatrix.add_constraint(lambda v:
         v.get_value('exec_option')['batch_size'] == 0 and
         v.get_value('exec_option')['disable_codegen'] == False and
         v.get_value('exec_option')['num_nodes'] == 0)

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/common/impala_test_suite.py
----------------------------------------------------------------------
diff --git a/tests/common/impala_test_suite.py 
b/tests/common/impala_test_suite.py
index c85b58b..e3b98a4 100644
--- a/tests/common/impala_test_suite.py
+++ b/tests/common/impala_test_suite.py
@@ -47,7 +47,7 @@ from tests.common.test_result_verifier import (
     apply_error_match_filter,
     verify_raw_results,
     verify_runtime_profile)
-from tests.common.test_vector import TestDimension
+from tests.common.test_vector import ImpalaTestDimension
 from tests.performance.query import Query
 from tests.performance.query_exec_functions import execute_using_jdbc
 from tests.performance.query_executor import JdbcQueryExecConfig
@@ -96,9 +96,9 @@ class ImpalaTestSuite(BaseTestSuite):
     add more dimensions or different dimensions they can override this 
function.
     """
     super(ImpalaTestSuite, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(
+    cls.ImpalaTestMatrix.add_dimension(
         cls.create_table_info_dimension(cls.exploration_strategy()))
-    cls.TestMatrix.add_dimension(cls.__create_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(cls.__create_exec_option_dimension())
 
   @classmethod
   def setup_class(cls):
@@ -583,7 +583,7 @@ class ImpalaTestSuite(BaseTestSuite):
       for tf in pytest.config.option.table_formats.split(','):
         dataset = get_dataset_from_workload(cls.get_workload())
         table_formats.append(TableFormatInfo.create_from_string(dataset, tf))
-      tf_dimensions = TestDimension('table_format', *table_formats)
+      tf_dimensions = ImpalaTestDimension('table_format', *table_formats)
     else:
       tf_dimensions = load_table_info_dimension(cls.get_workload(), 
exploration_strategy)
     # If 'skip_hbase' is specified or the filesystem is isilon, s3 or local, 
we don't

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/common/kudu_test_suite.py
----------------------------------------------------------------------
diff --git a/tests/common/kudu_test_suite.py b/tests/common/kudu_test_suite.py
index ff37c99..e9763ed 100644
--- a/tests/common/kudu_test_suite.py
+++ b/tests/common/kudu_test_suite.py
@@ -58,7 +58,8 @@ class KuduTestSuite(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(KuduTestSuite, cls).add_test_dimensions()
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_dimension(
+        create_uncompressed_text_dimension(cls.get_workload()))
 
   @classmethod
   def auto_create_db(cls):

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/common/test_dimensions.py
----------------------------------------------------------------------
diff --git a/tests/common/test_dimensions.py b/tests/common/test_dimensions.py
index 8f886b8..3f9c47c 100644
--- a/tests/common/test_dimensions.py
+++ b/tests/common/test_dimensions.py
@@ -20,7 +20,7 @@
 import os
 from itertools import product
 
-from tests.common.test_vector import TestDimension
+from tests.common.test_vector import ImpalaTestDimension
 
 WORKLOAD_DIR = os.environ['IMPALA_WORKLOAD_DIR']
 
@@ -87,12 +87,12 @@ class TableFormatInfo(object):
 
 def create_uncompressed_text_dimension(workload):
   dataset = get_dataset_from_workload(workload)
-  return TestDimension('table_format',
+  return ImpalaTestDimension('table_format',
       TableFormatInfo.create_from_string(dataset, 'text/none'))
 
 def create_parquet_dimension(workload):
   dataset = get_dataset_from_workload(workload)
-  return TestDimension('table_format',
+  return ImpalaTestDimension('table_format',
       TableFormatInfo.create_from_string(dataset, 'parquet/none'))
 
 # Available Exec Options:
@@ -159,7 +159,7 @@ def 
create_exec_option_dimension_from_dict(exec_option_dimensions):
   exec_option_dimension_values = [dict(zip(keys, prod)) for prod in 
combinations]
 
   # Build a test vector out of it
-  return TestDimension('exec_option', *exec_option_dimension_values)
+  return ImpalaTestDimension('exec_option', *exec_option_dimension_values)
 
 def get_dataset_from_workload(workload):
   # TODO: We need a better way to define the workload -> dataset mapping so we 
can
@@ -198,7 +198,7 @@ def load_table_info_dimension(workload_name, 
exploration_strategy, file_formats=
         continue
       vector_values.append(TableFormatInfo(**vals))
 
-  return TestDimension('table_format', *vector_values)
+  return ImpalaTestDimension('table_format', *vector_values)
 
 def is_supported_insert_format(table_format):
   # Returns true if the given table_format is a supported Impala INSERT format

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/common/test_vector.py
----------------------------------------------------------------------
diff --git a/tests/common/test_vector.py b/tests/common/test_vector.py
index db6309c..9ae7355 100644
--- a/tests/common/test_vector.py
+++ b/tests/common/test_vector.py
@@ -15,41 +15,43 @@
 # specific language governing permissions and limitations
 # under the License.
 
-# A TextMatrix is used to generate a set of TestVectors. The vectors that are 
generated
-# are based on one or more TestDimensions inputs. These lists define the set of
-# values that are interesting to a test. For example, for file_format these 
might be
-# 'seq', 'text', etc
+# A TextMatrix is used to generate a set of ImpalaTestVectors. The vectors 
that are
+# generated are based on one or more ImpalaTestDimensions inputs. These lists 
define
+# the set of values that are interesting to a test. For example, for 
file_format
+# these might be 'seq', 'text', etc
 #
-# The TestMatrix is then used to generate a set of TestVectors. Each 
TestVector contains a
-# single value from each of the input TestDimensions. An example:
+# The ImpalaTestMatrix is then used to generate a set of ImpalaTestVectors. 
Each
+# ImpalaTestVector contains a single value from each of the input 
ImpalaTestDimensions.
+# An example:
 #
-# TestMatrix.add_dimension('file_format', 'seq', 'text')
-# TestMatrix.add_dimension('agg_func', 'min', 'max', 'sum')
-# TestMatrix.add_dimension('col_type', 'int', 'bool')
-# test_vectors = TestMatrix.generate_test_vectors(...)
+# ImpalaTestMatrix.add_dimension('file_format', 'seq', 'text')
+# ImpalaTestMatrix.add_dimension('agg_func', 'min', 'max', 'sum')
+# ImpalaTestMatrix.add_dimension('col_type', 'int', 'bool')
+# test_vectors = ImpalaTestMatrix.generate_test_vectors(...)
 #
-# Would return a collection of TestVectors, with each one containing a 
combination of
-# file_format, agg_func, and col_type:
+# Would return a collection of ImpalaTestVectors, with each one containing a
+# combination of file_format, agg_func, and col_type:
 # seq, min, int
 # text, max, bool
 # ...
 #
-# A TestVector is an object itself, and the 'get_value' function is used to 
extract the
-# actual value from the TestVector for this particular combination:
+# A ImpalaTestVector is an object itself, and the 'get_value' function is used 
to
+# extract the actual value from the ImpalaTestVector for this particular 
combination:
 # test_vector = test_vectors[0]
 # print test_vector.get_value('file_format')
 #
-# The combinations of TestVectors generated can be done in two ways: pairwise 
and
-# exhaustive. Pairwise provides a way to get good coverage and reduce the 
total number
-# of combinations generated where exhaustive will generate all valid 
combinations.
+# The combinations of ImpalaTestVectors generated can be done in two ways: 
pairwise
+# and exhaustive. Pairwise provides a way to get good coverage and reduce the 
total
+# number of combinations generated where exhaustive will generate all valid
+# combinations.
 #
-# Finally, the TestMatrix also provides a way to add constraints to the 
vectors that
-# are generated. This is useful to filter out invalid combinations. These can 
be added
-# before calling 'generate_test_vectors'. The constraint is a function that
-# accepts a TestVector object and returns true if the vector is valid, false 
otherwise.
-# For example, if we want to make sure 'bool' columns are not used with 'sum':
+# Finally, the ImpalaTestMatrix also provides a way to add constraints to the 
vectors
+# that are generated. This is useful to filter out invalid combinations. These 
can
+# be added before calling 'generate_test_vectors'. The constraint is a 
function that
+# accepts a ImpalaTestVector object and returns true if the vector is valid, 
false
+# otherwise. For example, if we want to make sure 'bool' columns are not used 
with 'sum':
 #
-# TestMatrix.add_constraint(lambda v:\
+# ImpalaTestMatrix.add_constraint(lambda v:\
 #    not (v.get_value('col_type') == 'bool and v.get_value('agg_func') == 
'sum'))
 #
 # Additional examples of usage can be found within the test suites.
@@ -57,15 +59,15 @@
 from itertools import product
 
 # A list of test dimension values.
-class TestDimension(list):
+class ImpalaTestDimension(list):
   def __init__(self, name, *args):
     self.name = name
-    self.extend([TestVector.Value(name, arg) for arg in args])
+    self.extend([ImpalaTestVector.Value(name, arg) for arg in args])
 
 
-# A test vector that passed to test method. The TestVector can be used to 
extract values
-# for the specified dimension(s)
-class TestVector(object):
+# A test vector that passed to test method. The ImpalaTestVector can be used to
+# extract values for the specified dimension(s)
+class ImpalaTestVector(object):
   def __init__(self, vector_values):
     self.vector_values = vector_values
 
@@ -89,7 +91,7 @@ class TestVector(object):
 
 # Matrix -> Collection of vectors
 # Vector -> Call to get specific values
-class TestMatrix(object):
+class ImpalaTestMatrix(object):
   def __init__(self, *args):
     self.dimensions = dict((arg.name, arg) for arg in args)
     self.constraint_list = list()
@@ -118,8 +120,8 @@ class TestMatrix(object):
       raise ValueError, 'Unknown exploration strategy: %s' % 
exploration_strategy
 
   def __generate_exhaustive_combinations(self):
-    return [TestVector(vec) for vec in 
product(*self.__extract_vector_values()) if\
-                                               self.is_valid(vec)]
+    return [ImpalaTestVector(vec) for vec in 
product(*self.__extract_vector_values())
+              if self.is_valid(vec)]
 
   def __generate_pairwise_combinations(self):
     import metacomm.combinatorics.all_pairs2
@@ -129,7 +131,7 @@ class TestMatrix(object):
     # results will be the same.
     if len(self.dimensions) == 1:
       return self.__generate_exhaustive_combinations()
-    return [TestVector(vec) for vec in 
all_pairs(self.__extract_vector_values(),
+    return [ImpalaTestVector(vec) for vec in 
all_pairs(self.__extract_vector_values(),
                                                  filter_func = self.is_valid)]
 
   def add_constraint(self, constraint_func):
@@ -139,15 +141,15 @@ class TestMatrix(object):
     self.constraint_list = list()
 
   def __extract_vector_values(self):
-    # The data is stored as a tuple of (name, [val1, val2, val3]). So extract 
the actual
-    # values from this
+    # The data is stored as a tuple of (name, [val1, val2, val3]). So extract 
the
+    # actual values from this
     return [v[1] for v in self.dimensions.items()]
 
   def is_valid(self, vector):
     for constraint in self.constraint_list:
       if (isinstance(vector, list) or isinstance(vector, tuple)) and\
           len(vector) == len(self.dimensions):
-        valid = constraint(TestVector(vector))
+        valid = constraint(ImpalaTestVector(vector))
         if valid:
           continue
         return False

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/conftest.py
----------------------------------------------------------------------
diff --git a/tests/conftest.py b/tests/conftest.py
index 56941c2..44b00ff 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -157,7 +157,7 @@ def pytest_generate_tests(metafunc):
   """
   if 'vector' in metafunc.fixturenames:
     metafunc.cls.add_test_dimensions()
-    vectors = metafunc.cls.TestMatrix.generate_test_vectors(
+    vectors = metafunc.cls.ImpalaTestMatrix.generate_test_vectors(
         metafunc.config.option.exploration_strategy)
     if len(vectors) == 0:
       LOG.warning('No test vectors generated. Check constraints and input 
vectors')

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/custom_cluster/test_admission_controller.py
----------------------------------------------------------------------
diff --git a/tests/custom_cluster/test_admission_controller.py 
b/tests/custom_cluster/test_admission_controller.py
index 3992e3a..bf677d9 100644
--- a/tests/custom_cluster/test_admission_controller.py
+++ b/tests/custom_cluster/test_admission_controller.py
@@ -33,7 +33,7 @@ from tests.common.impala_test_suite import ImpalaTestSuite
 from tests.common.test_dimensions import (
     create_single_exec_option_dimension,
     create_uncompressed_text_dimension)
-from tests.common.test_vector import TestDimension
+from tests.common.test_vector import ImpalaTestDimension
 from tests.hs2.hs2_test_suite import HS2TestSuite, needs_session
 from ImpalaService import ImpalaHiveServer2Service
 from TCLIService import TCLIService
@@ -129,9 +129,10 @@ class TestAdmissionControllerBase(CustomClusterTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestAdmissionControllerBase, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
     # There's no reason to test this on other file formats/compression codecs 
right now
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_dimension(
+      create_uncompressed_text_dimension(cls.get_workload()))
 
 class TestAdmissionController(TestAdmissionControllerBase, HS2TestSuite):
   def __check_pool_rejected(self, client, pool, expected_error_re):
@@ -343,11 +344,12 @@ class 
TestAdmissionControllerStress(TestAdmissionControllerBase):
   @classmethod
   def add_test_dimensions(cls):
     super(TestAdmissionControllerStress, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(TestDimension('num_queries', *NUM_QUERIES))
-    cls.TestMatrix.add_dimension(
-        TestDimension('round_robin_submission', *ROUND_ROBIN_SUBMISSION))
-    cls.TestMatrix.add_dimension(
-        TestDimension('submission_delay_ms', *SUBMISSION_DELAY_MS))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('num_queries', *NUM_QUERIES))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('round_robin_submission', *ROUND_ROBIN_SUBMISSION))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('submission_delay_ms', *SUBMISSION_DELAY_MS))
 
     # Additional constraints for code coverage jobs and core.
     num_queries = None
@@ -356,12 +358,14 @@ class 
TestAdmissionControllerStress(TestAdmissionControllerBase):
       num_queries = 15
     elif cls.exploration_strategy() == 'core':
       num_queries = 30
-      cls.TestMatrix.add_constraint(lambda v: 
v.get_value('submission_delay_ms') == 0)
-      cls.TestMatrix.add_constraint(\
+      cls.ImpalaTestMatrix.add_constraint(
+          lambda v: v.get_value('submission_delay_ms') == 0)
+      cls.ImpalaTestMatrix.add_constraint(\
           lambda v: v.get_value('round_robin_submission') == True)
 
     if num_queries is not None:
-      cls.TestMatrix.add_constraint(lambda v: v.get_value('num_queries') == 
num_queries)
+      cls.ImpalaTestMatrix.add_constraint(
+          lambda v: v.get_value('num_queries') == num_queries)
 
   def setup(self):
     # All threads are stored in this list and it's used just to make sure we 
clean up

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/custom_cluster/test_hive_parquet_timestamp_conversion.py
----------------------------------------------------------------------
diff --git a/tests/custom_cluster/test_hive_parquet_timestamp_conversion.py 
b/tests/custom_cluster/test_hive_parquet_timestamp_conversion.py
index 731c766..4d7c202 100644
--- a/tests/custom_cluster/test_hive_parquet_timestamp_conversion.py
+++ b/tests/custom_cluster/test_hive_parquet_timestamp_conversion.py
@@ -32,7 +32,7 @@ class 
TestHiveParquetTimestampConversion(CustomClusterTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(CustomClusterTestSuite, cls).add_test_dimensions()
-    cls.TestMatrix.add_constraint(lambda v:
+    cls.ImpalaTestMatrix.add_constraint(lambda v:
         v.get_value('table_format').file_format == 'parquet' and
         v.get_value('table_format').compression_codec == 'none')
 

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/custom_cluster/test_parquet_max_page_header.py
----------------------------------------------------------------------
diff --git a/tests/custom_cluster/test_parquet_max_page_header.py 
b/tests/custom_cluster/test_parquet_max_page_header.py
index 155ac09..b87a10e 100644
--- a/tests/custom_cluster/test_parquet_max_page_header.py
+++ b/tests/custom_cluster/test_parquet_max_page_header.py
@@ -42,7 +42,7 @@ class TestParquetMaxPageHeader(CustomClusterTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(CustomClusterTestSuite, cls).add_test_dimensions()
-    cls.TestMatrix.add_constraint(lambda v:
+    cls.ImpalaTestMatrix.add_constraint(lambda v:
         v.get_value('table_format').file_format == 'parquet' and
         v.get_value('table_format').compression_codec == 'none')
 

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/custom_cluster/test_permanent_udfs.py
----------------------------------------------------------------------
diff --git a/tests/custom_cluster/test_permanent_udfs.py 
b/tests/custom_cluster/test_permanent_udfs.py
index 0170b8e..ae1c19f 100644
--- a/tests/custom_cluster/test_permanent_udfs.py
+++ b/tests/custom_cluster/test_permanent_udfs.py
@@ -45,7 +45,8 @@ class TestUdfPersistence(CustomClusterTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestUdfPersistence, cls).add_test_dimensions()
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_dimension(
+        create_uncompressed_text_dimension(cls.get_workload()))
 
   def setup_method(self, method):
     super(TestUdfPersistence, self).setup_method(method)

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/custom_cluster/test_spilling.py
----------------------------------------------------------------------
diff --git a/tests/custom_cluster/test_spilling.py 
b/tests/custom_cluster/test_spilling.py
index a0c1e62..7f90a8e 100644
--- a/tests/custom_cluster/test_spilling.py
+++ b/tests/custom_cluster/test_spilling.py
@@ -19,7 +19,7 @@ import pytest
 from copy import deepcopy
 
 from tests.common.custom_cluster_test_suite import CustomClusterTestSuite
-from tests.common.test_dimensions import (TestDimension,
+from tests.common.test_dimensions import (ImpalaTestDimension,
     create_single_exec_option_dimension,
     create_parquet_dimension)
 
@@ -53,15 +53,16 @@ class TestSpillStress(CustomClusterTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestSpillStress, cls).add_test_dimensions()
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('table_format').file_format == 'text')
     # Each client will get a different test id.
     # TODO: this test takes extremely long so only run on exhaustive. It would
     # be good to configure it so we can run some version on core.
     TEST_IDS = xrange(0, 3)
     NUM_ITERATIONS = [1]
-    cls.TestMatrix.add_dimension(TestDimension('test_id', *TEST_IDS))
-    cls.TestMatrix.add_dimension(TestDimension('iterations', *NUM_ITERATIONS))
+    cls.ImpalaTestMatrix.add_dimension(ImpalaTestDimension('test_id', 
*TEST_IDS))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('iterations', *NUM_ITERATIONS))
 
   @pytest.mark.stress
   def test_spill_stress(self, vector):
@@ -77,9 +78,9 @@ class TestSpilling(CustomClusterTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestSpilling, cls).add_test_dimensions()
-    cls.TestMatrix.clear_constraints()
-    cls.TestMatrix.add_dimension(create_parquet_dimension('tpch'))
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.clear_constraints()
+    cls.ImpalaTestMatrix.add_dimension(create_parquet_dimension('tpch'))
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
 
   # Reduce the IO read size. This reduces the memory required to trigger 
spilling.
   @pytest.mark.execute_serially

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/data_errors/test_data_errors.py
----------------------------------------------------------------------
diff --git a/tests/data_errors/test_data_errors.py 
b/tests/data_errors/test_data_errors.py
index 54c66d3..51add81 100644
--- a/tests/data_errors/test_data_errors.py
+++ b/tests/data_errors/test_data_errors.py
@@ -33,7 +33,7 @@ class TestDataErrors(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestDataErrors, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(
+    cls.ImpalaTestMatrix.add_dimension(
         create_exec_option_dimension(batch_sizes=cls.BATCH_SIZES))
 
 
@@ -48,7 +48,7 @@ class TestHdfsScanNodeErrors(TestDataErrors):
   def add_test_dimensions(cls):
     super(TestHdfsScanNodeErrors, cls).add_test_dimensions()
     # Only run on delimited text with no compression.
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('table_format').file_format != 'hbase' and
         v.get_value('table_format').file_format != 'parquet')
 
@@ -66,7 +66,7 @@ class TestHdfsSeqScanNodeErrors(TestHdfsScanNodeErrors):
   @classmethod
   def add_test_dimensions(cls):
     super(TestHdfsSeqScanNodeErrors, cls).add_test_dimensions()
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('table_format').file_format == 'seq')
 
   def test_hdfs_seq_scan_node_errors(self, vector):
@@ -79,7 +79,7 @@ class TestHdfsRcFileScanNodeErrors(TestHdfsScanNodeErrors):
   @classmethod
   def add_test_dimensions(cls):
     super(TestHdfsRcFileScanNodeErrors, cls).add_test_dimensions()
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('table_format').file_format == 'rc')
 
   def test_hdfs_rcfile_scan_node_errors(self, vector):
@@ -91,7 +91,7 @@ class TestAvroErrors(TestDataErrors):
   @classmethod
   def add_test_dimensions(cls):
     super(TestAvroErrors, cls).add_test_dimensions()
-    cls.TestMatrix.add_constraint(lambda v:
+    cls.ImpalaTestMatrix.add_constraint(lambda v:
         v.get_value('table_format').file_format == 'avro' and
         v.get_value('table_format').compression_codec == 'snap')
 
@@ -105,7 +105,7 @@ class TestHBaseDataErrors(TestDataErrors):
     super(TestHBaseDataErrors, cls).add_test_dimensions()
 
     # Only run on hbase.
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('table_format').file_format == 'hbase' and\
         v.get_value('table_format').compression_codec == 'none')
 
@@ -133,7 +133,7 @@ class TestTimestampErrors(TestDataErrors):
   @classmethod
   def add_test_dimensions(cls):
     super(TestTimestampErrors, cls).add_test_dimensions()
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('table_format').file_format == 'text')
 
   def _setup_test_table(self, fq_tbl_name):

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/experiments/test_targeted_perf.py
----------------------------------------------------------------------
diff --git a/tests/experiments/test_targeted_perf.py 
b/tests/experiments/test_targeted_perf.py
index 1943a30..1c28fda 100644
--- a/tests/experiments/test_targeted_perf.py
+++ b/tests/experiments/test_targeted_perf.py
@@ -28,9 +28,10 @@ class TestTargetedPerf(ImpalaTestSuite):
     return 'targeted-perf'
 
   @classmethod
-  def add_test_dimension(cls):
+  def add_test_dimensions(cls):
     super(TestTargetedPerf, cls).add_test_dimensions()
-    cls.TestMatrix.add_constraint(lambda v: 
v.get_value('exec_option')['batch_size'] == 0)
+    cls.ImpalaTestMatrix.add_constraint(
+        lambda v: v.get_value('exec_option')['batch_size'] == 0)
 
   def test_perf_aggregation(self, vector):
     self.run_test_case('aggregation', vector)

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/failure/test_failpoints.py
----------------------------------------------------------------------
diff --git a/tests/failure/test_failpoints.py b/tests/failure/test_failpoints.py
index 49a4699..b51950e 100644
--- a/tests/failure/test_failpoints.py
+++ b/tests/failure/test_failpoints.py
@@ -28,7 +28,7 @@ from tests.beeswax.impala_beeswax import 
ImpalaBeeswaxException
 from tests.common.impala_test_suite import ImpalaTestSuite, LOG
 from tests.common.skip import SkipIf, SkipIfS3, SkipIfIsilon, SkipIfLocal
 from tests.common.test_dimensions import create_exec_option_dimension
-from tests.common.test_vector import TestDimension
+from tests.common.test_vector import ImpalaTestDimension
 
 FAILPOINT_ACTION = ['FAIL', 'CANCEL', 'MEM_LIMIT_EXCEEDED']
 FAILPOINT_LOCATION = ['PREPARE', 'PREPARE_SCANNER', 'OPEN', 'GETNEXT', 'CLOSE']
@@ -89,15 +89,20 @@ class TestFailpoints(ImpalaTestSuite):
     if os.getenv("TARGET_FILESYSTEM") in ["s3", "isilon", "local"]: return
     node_id_map = TestFailpoints.parse_plan_nodes_from_explain_output(QUERY, 
"functional")
     assert node_id_map
-    cls.TestMatrix.add_dimension(TestDimension('location', 
*FAILPOINT_LOCATION))
-    cls.TestMatrix.add_dimension(TestDimension('target_node', 
*(node_id_map.items())))
-    cls.TestMatrix.add_dimension(TestDimension('action', *FAILPOINT_ACTION))
-    cls.TestMatrix.add_dimension(TestDimension('query_type', *QUERY_TYPE))
-    cls.TestMatrix.add_dimension(create_exec_option_dimension([0], [False], 
[0]))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('location', *FAILPOINT_LOCATION))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('target_node', *(node_id_map.items())))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('action', *FAILPOINT_ACTION))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('query_type', *QUERY_TYPE))
+    cls.ImpalaTestMatrix.add_dimension(
+        create_exec_option_dimension([0], [False], [0]))
 
     # These are invalid test cases.
     # For more info see IMPALA-55 and IMPALA-56.
-    cls.TestMatrix.add_constraint(lambda v: not (
+    cls.ImpalaTestMatrix.add_constraint(lambda v: not (
         v.get_value('action') == 'FAIL' and
         v.get_value('location') in ['CLOSE'] and
         v.get_value('target_node')[0] in ['AGGREGATE', 'HASH JOIN']) and
@@ -106,12 +111,12 @@ class TestFailpoints(ImpalaTestSuite):
 
     # Don't create CLOSE:WAIT debug actions to avoid leaking plan fragments 
(there's no
     # way to cancel a plan fragment once Close() has been called)
-    cls.TestMatrix.add_constraint(
+    cls.ImpalaTestMatrix.add_constraint(
         lambda v: not (v.get_value('action') == 'CANCEL'
                      and v.get_value('location') == 'CLOSE'))
 
     # No need to test error in scanner preparation for non-scan nodes.
-    cls.TestMatrix.add_constraint(
+    cls.ImpalaTestMatrix.add_constraint(
         lambda v: (v.get_value('location') != 'PREPARE_SCANNER' or
             v.get_value('target_node')[0] == 'SCAN HDFS'))
 

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/metadata/test_compute_stats.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_compute_stats.py 
b/tests/metadata/test_compute_stats.py
index 8c71d35..f39fd02 100644
--- a/tests/metadata/test_compute_stats.py
+++ b/tests/metadata/test_compute_stats.py
@@ -34,10 +34,11 @@ class TestComputeStats(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestComputeStats, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
     # Do not run these tests using all dimensions because the expected results
     # are different for different file formats.
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_dimension(
+        create_uncompressed_text_dimension(cls.get_workload()))
 
   @SkipIfLocal.hdfs_blocks
   def test_compute_stats(self, vector, unique_database):
@@ -127,8 +128,8 @@ class TestHbaseComputeStats(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestHbaseComputeStats, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
-    cls.TestMatrix.add_constraint(
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_constraint(
         lambda v: v.get_value('table_format').file_format == 'hbase')
 
   @pytest.mark.xfail(pytest.config.option.testing_remote_cluster,
@@ -153,9 +154,10 @@ class TestCorruptTableStats(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestCorruptTableStats, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(create_exec_option_dimension(
+    cls.ImpalaTestMatrix.add_dimension(create_exec_option_dimension(
       disable_codegen_options=[False], exec_single_node_option=[100]))
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_dimension(
+        create_uncompressed_text_dimension(cls.get_workload()))
 
   def test_corrupt_stats(self, vector, unique_database):
     """IMPALA-1983/IMPALA-1657: Test that in the presence of corrupt table 
statistics a
@@ -173,8 +175,9 @@ class TestIncompatibleColStats(ImpalaTestSuite):
   def add_test_dimensions(cls):
     super(TestIncompatibleColStats, cls).add_test_dimensions()
     # There is no reason to run these tests using all dimensions.
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(
+        create_uncompressed_text_dimension(cls.get_workload()))
 
   def test_incompatible_col_stats(self, vector, unique_database):
     """Tests Impala is able to use tables when the column stats data is not 
compatible

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/metadata/test_ddl.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_ddl.py b/tests/metadata/test_ddl.py
index 58f42eb..40c7a99 100644
--- a/tests/metadata/test_ddl.py
+++ b/tests/metadata/test_ddl.py
@@ -408,7 +408,7 @@ class TestLibCache(TestDdlBase):
   @classmethod
   def add_test_dimensions(cls):
     super(TestLibCache, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
 
   def test_create_drop_function(self, vector, unique_database):
     """This will create, run, and drop the same function repeatedly, 
exercising the

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/metadata/test_ddl_base.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_ddl_base.py b/tests/metadata/test_ddl_base.py
index b20d897..3044ef0 100644
--- a/tests/metadata/test_ddl_base.py
+++ b/tests/metadata/test_ddl_base.py
@@ -37,14 +37,15 @@ class TestDdlBase(ImpalaTestSuite):
       # Only run with sync_ddl on exhaustive since it increases test runtime.
       sync_ddl_opts = [0]
 
-    cls.TestMatrix.add_dimension(create_exec_option_dimension(
+    cls.ImpalaTestMatrix.add_dimension(create_exec_option_dimension(
         cluster_sizes=ALL_NODES_ONLY,
         disable_codegen_options=[False],
         batch_sizes=[0],
         sync_ddl=sync_ddl_opts))
 
     # There is no reason to run these tests using all dimensions.
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_dimension(
+        create_uncompressed_text_dimension(cls.get_workload()))
 
   @classmethod
   def _use_multiple_impalad(cls, vector):

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/metadata/test_explain.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_explain.py b/tests/metadata/test_explain.py
index 052bf8f..fd5b09a 100644
--- a/tests/metadata/test_explain.py
+++ b/tests/metadata/test_explain.py
@@ -39,7 +39,7 @@ class TestExplain(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestExplain, cls).add_test_dimensions()
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('table_format').file_format == 'text' and\
         v.get_value('table_format').compression_codec == 'none' and\
         v.get_value('exec_option')['batch_size'] == 0 and\

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/metadata/test_hdfs_encryption.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_hdfs_encryption.py 
b/tests/metadata/test_hdfs_encryption.py
index a257de0..9ace3c4 100644
--- a/tests/metadata/test_hdfs_encryption.py
+++ b/tests/metadata/test_hdfs_encryption.py
@@ -23,7 +23,7 @@ from tests.common.skip import SkipIfS3, SkipIfIsilon, 
SkipIfLocal
 from tests.common.test_dimensions import (
     create_single_exec_option_dimension,
     create_uncompressed_text_dimension)
-from tests.common.test_vector import TestDimension
+from tests.common.test_vector import ImpalaTestDimension
 from tests.util.shell_util import exec_process
 
 TEST_DB = 'test_encryption_db'
@@ -52,8 +52,9 @@ class TestHdfsEncryption(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestHdfsEncryption, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(
+        create_uncompressed_text_dimension(cls.get_workload()))
 
     PARTITIONED = [True, False]
     # For 'core', just test loading from a directory that is encrypted.
@@ -64,10 +65,13 @@ class TestHdfsEncryption(ImpalaTestSuite):
       KEY_LOAD_DIR = [None, "testkey1", "testkey2"]
       KEY_TBL_DIR = [None, "testkey1", "testkey2"]
 
-    cls.TestMatrix.add_dimension(TestDimension('partitioned', *PARTITIONED))
-    cls.TestMatrix.add_dimension(TestDimension('key_load_dir', *KEY_LOAD_DIR))
-    cls.TestMatrix.add_dimension(TestDimension('key_tbl_dir', *KEY_TBL_DIR))
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('partitioned', *PARTITIONED))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('key_load_dir', *KEY_LOAD_DIR))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('key_tbl_dir', *KEY_TBL_DIR))
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('key_load_dir') is not None or\
         v.get_value('key_tbl_dir') is not None)
 

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/metadata/test_hdfs_permissions.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_hdfs_permissions.py 
b/tests/metadata/test_hdfs_permissions.py
index 993f26c..3c4957e 100644
--- a/tests/metadata/test_hdfs_permissions.py
+++ b/tests/metadata/test_hdfs_permissions.py
@@ -36,8 +36,9 @@ class TestHdfsPermissions(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestHdfsPermissions, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(
+        create_uncompressed_text_dimension(cls.get_workload()))
 
   def setup_method(self, method):
     self._cleanup()

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/metadata/test_hidden_files.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_hidden_files.py 
b/tests/metadata/test_hidden_files.py
index 2360519..a48531a 100644
--- a/tests/metadata/test_hidden_files.py
+++ b/tests/metadata/test_hidden_files.py
@@ -39,11 +39,12 @@ class TestHiddenFiles(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestHiddenFiles, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(
+        create_uncompressed_text_dimension(cls.get_workload()))
     # Only run in exhaustive mode on hdfs since this test takes a long time.
     if cls.exploration_strategy() != 'exhaustive' and not IS_S3:
-      cls.TestMatrix.clear()
+      cls.ImpalaTestMatrix.clear()
 
   def __prepare_test_table(self, db_name, tbl_name):
     """Creates a test table with two partitions, and copies files into the HDFS

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/metadata/test_hms_integration.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_hms_integration.py 
b/tests/metadata/test_hms_integration.py
index 23254ac..8dca2f6 100644
--- a/tests/metadata/test_hms_integration.py
+++ b/tests/metadata/test_hms_integration.py
@@ -52,8 +52,8 @@ class TestHmsIntegrationSanity(ImpalaTestSuite):
   def add_test_dimensions(cls):
     super(TestHmsIntegrationSanity, cls).add_test_dimensions()
     # There is no reason to run these tests using all dimensions.
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
-    cls.TestMatrix.add_dimension(
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(
         create_uncompressed_text_dimension(cls.get_workload()))
 
   @pytest.mark.execute_serially
@@ -103,8 +103,8 @@ class TestHmsIntegration(ImpalaTestSuite):
       pytest.skip("Should only run in exhaustive due to long execution time.")
 
     # There is no reason to run these tests using all dimensions.
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
-    cls.TestMatrix.add_dimension(
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(
         create_uncompressed_text_dimension(cls.get_workload()))
 
   class ImpalaDbWrapper(object):

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/metadata/test_last_ddl_time_update.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_last_ddl_time_update.py 
b/tests/metadata/test_last_ddl_time_update.py
index e9fe902..0ec57ee 100644
--- a/tests/metadata/test_last_ddl_time_update.py
+++ b/tests/metadata/test_last_ddl_time_update.py
@@ -32,14 +32,14 @@ class TestLastDdlTimeUpdate(ImpalaTestSuite):
   def add_test_dimensions(cls):
     super(TestLastDdlTimeUpdate, cls).add_test_dimensions()
     # There is no reason to run these tests using all dimensions.
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('table_format').file_format == 'text' and\
         v.get_value('table_format').compression_codec == 'none')
 
     if cls.exploration_strategy() == 'core' and not IS_S3:
       # Don't run on core.  This test is very slow and we are unlikely
       # to regress here.
-      cls.TestMatrix.add_constraint(lambda v: False)
+      cls.ImpalaTestMatrix.add_constraint(lambda v: False)
 
   def test_alter(self, vector, unique_database):
     TBL_NAME = "alter_test_tbl"

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/metadata/test_load.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_load.py b/tests/metadata/test_load.py
index 38442bc..5c0a5e5 100644
--- a/tests/metadata/test_load.py
+++ b/tests/metadata/test_load.py
@@ -42,8 +42,9 @@ class TestLoadData(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestLoadData, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(
+        create_uncompressed_text_dimension(cls.get_workload()))
 
   def _clean_test_tables(self):
     self.client.execute("drop table if exists 
functional.{0}".format(TEST_TBL_NOPART))

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/metadata/test_metadata_query_statements.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_metadata_query_statements.py 
b/tests/metadata/test_metadata_query_statements.py
index 8e25a2a..cadc209 100644
--- a/tests/metadata/test_metadata_query_statements.py
+++ b/tests/metadata/test_metadata_query_statements.py
@@ -51,12 +51,13 @@ class TestMetadataQueryStatements(ImpalaTestSuite):
       # Cut down on test runtime by only running with SYNC_DDL=0
       sync_ddl_opts = [0]
 
-    cls.TestMatrix.add_dimension(create_exec_option_dimension(
+    cls.ImpalaTestMatrix.add_dimension(create_exec_option_dimension(
         cluster_sizes=ALL_NODES_ONLY,
         disable_codegen_options=[False],
         batch_sizes=[0],
         sync_ddl=sync_ddl_opts))
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_dimension(
+        create_uncompressed_text_dimension(cls.get_workload()))
 
   def test_use(self, vector):
     self.run_test_case('QueryTest/use', vector)

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/metadata/test_partition_metadata.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_partition_metadata.py 
b/tests/metadata/test_partition_metadata.py
index e5ad0bb..c9f90e1 100644
--- a/tests/metadata/test_partition_metadata.py
+++ b/tests/metadata/test_partition_metadata.py
@@ -31,10 +31,10 @@ class TestPartitionMetadata(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestPartitionMetadata, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
 
     # There is no reason to run these tests using all dimensions.
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('table_format').file_format == 'text' and\
         v.get_value('table_format').compression_codec == 'none')
 

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/metadata/test_recover_partitions.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_recover_partitions.py 
b/tests/metadata/test_recover_partitions.py
index 8d21cb0..cb0cf98 100644
--- a/tests/metadata/test_recover_partitions.py
+++ b/tests/metadata/test_recover_partitions.py
@@ -42,14 +42,15 @@ class TestRecoverPartitions(ImpalaTestSuite):
       # Only run without sync_ddl on exhaustive since it increases test 
runtime.
       sync_ddl_opts = [0]
 
-    cls.TestMatrix.add_dimension(create_exec_option_dimension(
+    cls.ImpalaTestMatrix.add_dimension(create_exec_option_dimension(
         cluster_sizes=ALL_NODES_ONLY,
         disable_codegen_options=[False],
         batch_sizes=[0],
         sync_ddl=sync_ddl_opts))
 
     # There is no reason to run these tests using all dimensions.
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_dimension(
+        create_uncompressed_text_dimension(cls.get_workload()))
 
   def __get_fs_location(self, db_name, table_name):
     return 'test-warehouse/%s.db/%s/' % (db_name, table_name)

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/metadata/test_refresh_partition.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_refresh_partition.py 
b/tests/metadata/test_refresh_partition.py
index 92f9a19..2489c81 100644
--- a/tests/metadata/test_refresh_partition.py
+++ b/tests/metadata/test_refresh_partition.py
@@ -39,8 +39,8 @@ class TestRefreshPartition(ImpalaTestSuite):
     super(TestRefreshPartition, cls).add_test_dimensions()
 
     # There is no reason to run these tests using all dimensions.
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
-    cls.TestMatrix.add_dimension(
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(
         create_uncompressed_text_dimension(cls.get_workload()))
 
   def impala_partition_names(self, table_name):

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/metadata/test_set.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_set.py b/tests/metadata/test_set.py
index d39a6c7..a1b3276 100644
--- a/tests/metadata/test_set.py
+++ b/tests/metadata/test_set.py
@@ -31,8 +31,9 @@ class TestSet(ImpalaTestSuite):
   def add_test_dimensions(cls):
     super(TestSet, cls).add_test_dimensions()
     # This test only needs to be run once.
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(
+        create_uncompressed_text_dimension(cls.get_workload()))
 
   def test_set(self, vector):
     # Please note that query options modified during the test will be reset

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/metadata/test_show_create_table.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_show_create_table.py 
b/tests/metadata/test_show_create_table.py
index 19841ad..d0ce87f 100644
--- a/tests/metadata/test_show_create_table.py
+++ b/tests/metadata/test_show_create_table.py
@@ -44,10 +44,11 @@ class TestShowCreateTable(ImpalaTestSuite):
   def add_test_dimensions(cls):
     super(TestShowCreateTable, cls).add_test_dimensions()
     # don't use any exec options, running exactly once is fine
-    cls.TestMatrix.clear_dimension('exec_option')
+    cls.ImpalaTestMatrix.clear_dimension('exec_option')
     # There is no reason to run these tests using all dimensions.
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
-    cls.TestMatrix.add_constraint(
+    cls.ImpalaTestMatrix.add_dimension(
+        create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_constraint(
         lambda v: v.get_value('table_format').file_format == 'text' and
         v.get_value('table_format').compression_codec == 'none')
 

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/metadata/test_stale_metadata.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_stale_metadata.py 
b/tests/metadata/test_stale_metadata.py
index 55d55e9..cd72035 100644
--- a/tests/metadata/test_stale_metadata.py
+++ b/tests/metadata/test_stale_metadata.py
@@ -44,9 +44,9 @@ class TestRewrittenFile(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestRewrittenFile, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
     # TODO: add more file formats
-    cls.TestMatrix.add_constraint(
+    cls.ImpalaTestMatrix.add_constraint(
         lambda v: v.get_value('table_format').file_format == 'parquet')
 
   def __overwrite_file_and_query(self, db_name, table_name, old_file, new_file,

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/metadata/test_views_compatibility.py
----------------------------------------------------------------------
diff --git a/tests/metadata/test_views_compatibility.py 
b/tests/metadata/test_views_compatibility.py
index 203092f..3fd38f2 100644
--- a/tests/metadata/test_views_compatibility.py
+++ b/tests/metadata/test_views_compatibility.py
@@ -64,9 +64,10 @@ class TestViewCompatibility(ImpalaTestSuite):
       pytest.skip("Should only run in exhaustive due to long execution time.")
 
     # don't use any exec options, running exactly once is fine
-    cls.TestMatrix.clear_dimension('exec_option')
+    cls.ImpalaTestMatrix.clear_dimension('exec_option')
     # There is no reason to run these tests using all dimensions.
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_dimension(
+        create_uncompressed_text_dimension(cls.get_workload()))
 
   def test_view_compatibility(self, vector, unique_database):
     self._run_view_compat_test_case('QueryTest/views-compatibility', vector,

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/query_test/test_aggregation.py
----------------------------------------------------------------------
diff --git a/tests/query_test/test_aggregation.py 
b/tests/query_test/test_aggregation.py
index 38900e6..a257bc0 100644
--- a/tests/query_test/test_aggregation.py
+++ b/tests/query_test/test_aggregation.py
@@ -32,7 +32,7 @@ from tests.common.test_result_verifier import (
     parse_column_labels,
     QueryTestResult,
     parse_result_rows)
-from tests.common.test_vector import TestDimension
+from tests.common.test_vector import ImpalaTestDimension
 
 # Test dimensions for TestAggregation.
 AGG_FUNCTIONS = ['sum', 'count', 'min', 'max', 'avg', 'ndv']
@@ -95,9 +95,9 @@ class TestAggregation(ImpalaTestSuite):
     super(TestAggregation, cls).add_test_dimensions()
 
     # Add two more dimensions
-    cls.TestMatrix.add_dimension(TestDimension('agg_func', *AGG_FUNCTIONS))
-    cls.TestMatrix.add_dimension(TestDimension('data_type', *DATA_TYPES))
-    cls.TestMatrix.add_constraint(lambda v: cls.is_valid_vector(v))
+    cls.ImpalaTestMatrix.add_dimension(ImpalaTestDimension('agg_func', 
*AGG_FUNCTIONS))
+    cls.ImpalaTestMatrix.add_dimension(ImpalaTestDimension('data_type', 
*DATA_TYPES))
+    cls.ImpalaTestMatrix.add_constraint(lambda v: cls.is_valid_vector(v))
 
   @classmethod
   def is_valid_vector(cls, vector):
@@ -180,11 +180,12 @@ class TestAggregationQueries(ImpalaTestSuite):
   def add_test_dimensions(cls):
     super(TestAggregationQueries, cls).add_test_dimensions()
 
-    cls.TestMatrix.add_dimension(
+    cls.ImpalaTestMatrix.add_dimension(
       create_exec_option_dimension(disable_codegen_options=[False, True]))
 
     if cls.exploration_strategy() == 'core':
-      
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+      cls.ImpalaTestMatrix.add_dimension(
+          create_uncompressed_text_dimension(cls.get_workload()))
 
   def test_non_codegen_tinyint_grouping(self, vector, unique_database):
     # Regression for IMPALA-901. The test includes an INSERT statement, so can 
only be run
@@ -280,11 +281,11 @@ class TestWideAggregationQueries(ImpalaTestSuite):
   def add_test_dimensions(cls):
     super(TestWideAggregationQueries, cls).add_test_dimensions()
 
-    cls.TestMatrix.add_dimension(
+    cls.ImpalaTestMatrix.add_dimension(
       create_exec_option_dimension(disable_codegen_options=[False, True]))
 
     # File format doesn't matter for this test.
-    cls.TestMatrix.add_constraint(
+    cls.ImpalaTestMatrix.add_constraint(
       lambda v: v.get_value('table_format').file_format == 'parquet')
 
   def test_many_grouping_columns(self, vector):
@@ -317,7 +318,7 @@ class TestTPCHAggregationQueries(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestTPCHAggregationQueries, cls).add_test_dimensions()
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('table_format').file_format in ['parquet'])
 
   def test_tpch_aggregations(self, vector):

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/query_test/test_analytic_tpcds.py
----------------------------------------------------------------------
diff --git a/tests/query_test/test_analytic_tpcds.py 
b/tests/query_test/test_analytic_tpcds.py
index 1fda09f..67224fe 100644
--- a/tests/query_test/test_analytic_tpcds.py
+++ b/tests/query_test/test_analytic_tpcds.py
@@ -18,7 +18,7 @@
 # Targeted tests to validate analytic functions use TPCDS dataset.
 
 from tests.common.impala_test_suite import ImpalaTestSuite
-from tests.common.test_dimensions import create_parquet_dimension, 
TestDimension
+from tests.common.test_dimensions import create_parquet_dimension, 
ImpalaTestDimension
 
 class TestAnalyticTpcds(ImpalaTestSuite):
   """Test class to do functional validation of analytic functions.
@@ -32,14 +32,14 @@ class TestAnalyticTpcds(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestAnalyticTpcds, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(create_parquet_dimension('tpcds'))
+    cls.ImpalaTestMatrix.add_dimension(create_parquet_dimension('tpcds'))
 
     if cls.exploration_strategy() == 'exhaustive':
       batch_size = [1, 3, 10, 100, 0]
     else:
       batch_size = [0]
 
-    cls.TestMatrix.add_dimension(TestDimension('batch_size', *batch_size))
+    cls.ImpalaTestMatrix.add_dimension(ImpalaTestDimension('batch_size', 
*batch_size))
 
   def test_analytic_functions_tpcds(self, vector):
     vector.get_value('exec_option')['batch_size'] = 
vector.get_value('batch_size')

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/query_test/test_avro_schema_resolution.py
----------------------------------------------------------------------
diff --git a/tests/query_test/test_avro_schema_resolution.py 
b/tests/query_test/test_avro_schema_resolution.py
index b72be5b..4972adb 100644
--- a/tests/query_test/test_avro_schema_resolution.py
+++ b/tests/query_test/test_avro_schema_resolution.py
@@ -27,7 +27,7 @@ class TestAvroSchemaResolution(ImpalaTestSuite):
   def add_test_dimensions(cls):
     super(TestAvroSchemaResolution, cls).add_test_dimensions()
     # avro/snap is the only table format with a schema_resolution_test table
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('table_format').file_format == 'avro' and\
         v.get_value('table_format').compression_codec == 'snap')
 

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/query_test/test_cancellation.py
----------------------------------------------------------------------
diff --git a/tests/query_test/test_cancellation.py 
b/tests/query_test/test_cancellation.py
index 3e2e8ba..edb095f 100644
--- a/tests/query_test/test_cancellation.py
+++ b/tests/query_test/test_cancellation.py
@@ -23,7 +23,7 @@ import threading
 from random import choice
 from time import sleep
 from tests.beeswax.impala_beeswax import ImpalaBeeswaxException
-from tests.common.test_vector import TestDimension
+from tests.common.test_vector import ImpalaTestDimension
 from tests.common.impala_test_suite import ImpalaTestSuite
 from tests.verifiers.metric_verifier import MetricVerifier
 
@@ -63,28 +63,37 @@ class TestCancellation(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestCancellation, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(TestDimension('query', *QUERIES.keys()))
-    cls.TestMatrix.add_dimension(TestDimension('query_type', *QUERY_TYPE))
-    cls.TestMatrix.add_dimension(TestDimension('cancel_delay', 
*CANCEL_DELAY_IN_SECONDS))
-    cls.TestMatrix.add_dimension(TestDimension('action', *DEBUG_ACTIONS))
-    cls.TestMatrix.add_dimension(TestDimension('max_block_mgr_memory', 0))
-
-    cls.TestMatrix.add_constraint(lambda v: v.get_value('query_type') != 
'CTAS' or (\
-        v.get_value('table_format').file_format in ['text', 'parquet', 'kudu'] 
and\
-        v.get_value('table_format').compression_codec == 'none'))
-    cls.TestMatrix.add_constraint(lambda v: 
v.get_value('exec_option')['batch_size'] == 0)
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('query', *QUERIES.keys()))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('query_type', *QUERY_TYPE))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('cancel_delay', *CANCEL_DELAY_IN_SECONDS))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('action', *DEBUG_ACTIONS))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('max_block_mgr_memory', 0))
+
+    cls.ImpalaTestMatrix.add_constraint(
+        lambda v: v.get_value('query_type') != 'CTAS' or (\
+            v.get_value('table_format').file_format in ['text', 'parquet', 
'kudu'] and\
+            v.get_value('table_format').compression_codec == 'none'))
+    cls.ImpalaTestMatrix.add_constraint(
+        lambda v: v.get_value('exec_option')['batch_size'] == 0)
     # Ignore 'compute stats' queries for the CTAS query type.
-    cls.TestMatrix.add_constraint(lambda v: not (v.get_value('query_type') == 
'CTAS' and
-         v.get_value('query').startswith('compute stats')))
+    cls.ImpalaTestMatrix.add_constraint(
+        lambda v: not (v.get_value('query_type') == 'CTAS' and
+            v.get_value('query').startswith('compute stats')))
 
     # Ignore CTAS on Kudu if there is no PRIMARY KEY specified.
-    cls.TestMatrix.add_constraint(lambda v: not (v.get_value('query_type') == 
'CTAS' and
-         v.get_value('table_format').file_format == 'kudu' and
-         QUERIES[v.get_value('query')] is None))
+    cls.ImpalaTestMatrix.add_constraint(
+        lambda v: not (v.get_value('query_type') == 'CTAS' and
+            v.get_value('table_format').file_format == 'kudu' and
+            QUERIES[v.get_value('query')] is None))
 
     # tpch tables are not generated for hbase as the data loading takes a very 
long time.
     # TODO: Add cancellation tests for hbase.
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('table_format').file_format != 'hbase')
     if cls.exploration_strategy() != 'core':
       NUM_CANCELATION_ITERATIONS = 3
@@ -170,7 +179,7 @@ class TestCancellationParallel(TestCancellation):
   @classmethod
   def add_test_dimensions(cls):
     super(TestCancellationParallel, cls).add_test_dimensions()
-    cls.TestMatrix.add_constraint(lambda v: v.get_value('query_type') != 
'CTAS')
+    cls.ImpalaTestMatrix.add_constraint(lambda v: v.get_value('query_type') != 
'CTAS')
 
   def test_cancel_select(self, vector):
     self.execute_cancel_test(vector)
@@ -179,14 +188,14 @@ class TestCancellationSerial(TestCancellation):
   @classmethod
   def add_test_dimensions(cls):
     super(TestCancellationSerial, cls).add_test_dimensions()
-    cls.TestMatrix.add_constraint(lambda v: v.get_value('query_type') == 
'CTAS' or
+    cls.ImpalaTestMatrix.add_constraint(lambda v: v.get_value('query_type') == 
'CTAS' or
         v.get_value('query').startswith('compute stats'))
-    cls.TestMatrix.add_constraint(lambda v: v.get_value('cancel_delay') != 0)
-    cls.TestMatrix.add_constraint(lambda v: v.get_value('action') is None)
+    cls.ImpalaTestMatrix.add_constraint(lambda v: v.get_value('cancel_delay') 
!= 0)
+    cls.ImpalaTestMatrix.add_constraint(lambda v: v.get_value('action') is 
None)
     # Don't run across all cancel delay options unless running in exhaustive 
mode
     if cls.exploration_strategy() != 'exhaustive':
-      cls.TestMatrix.add_constraint(lambda v: v.get_value('cancel_delay') in 
[3])
-      cls.TestMatrix.add_constraint(lambda v: v.get_value('query') ==\
+      cls.ImpalaTestMatrix.add_constraint(lambda v: 
v.get_value('cancel_delay') in [3])
+      cls.ImpalaTestMatrix.add_constraint(lambda v: v.get_value('query') ==\
           choice(QUERIES.keys()))
 
   @pytest.mark.execute_serially
@@ -203,13 +212,16 @@ class TestCancellationFullSort(TestCancellation):
   def add_test_dimensions(cls):
     super(TestCancellation, cls).add_test_dimensions()
     # Override dimensions to only execute the order-by without limit query.
-    cls.TestMatrix.add_dimension(TestDimension('query', SORT_QUERY))
-    cls.TestMatrix.add_dimension(TestDimension('query_type', 'SELECT'))
-    cls.TestMatrix.add_dimension(TestDimension('cancel_delay', 
*SORT_CANCEL_DELAY))
-    cls.TestMatrix.add_dimension(TestDimension('max_block_mgr_memory',\
-        *SORT_BLOCK_MGR_LIMIT))
-    cls.TestMatrix.add_dimension(TestDimension('action', None))
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('query', SORT_QUERY))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('query_type', 'SELECT'))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('cancel_delay', *SORT_CANCEL_DELAY))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('max_block_mgr_memory', *SORT_BLOCK_MGR_LIMIT))
+    cls.ImpalaTestMatrix.add_dimension(ImpalaTestDimension('action', None))
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
        v.get_value('table_format').file_format =='parquet' and\
        v.get_value('table_format').compression_codec == 'none')
 

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/query_test/test_chars.py
----------------------------------------------------------------------
diff --git a/tests/query_test/test_chars.py b/tests/query_test/test_chars.py
index ee29279..ec06da8 100644
--- a/tests/query_test/test_chars.py
+++ b/tests/query_test/test_chars.py
@@ -71,9 +71,9 @@ class TestStringQueries(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestStringQueries, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(
+    cls.ImpalaTestMatrix.add_dimension(
       create_exec_option_dimension(disable_codegen_options=[False, True]))
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('table_format').file_format in ['text'] and
         v.get_value('table_format').compression_codec in ['none'])
 
@@ -117,9 +117,9 @@ class TestCharFormats(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestCharFormats, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(
+    cls.ImpalaTestMatrix.add_dimension(
       create_exec_option_dimension(disable_codegen_options=[False, True]))
-    cls.TestMatrix.add_constraint(lambda v:
+    cls.ImpalaTestMatrix.add_constraint(lambda v:
         (v.get_value('table_format').file_format in ['avro'] and
         v.get_value('table_format').compression_codec in ['snap']) or
         v.get_value('table_format').file_format in ['parquet'] or

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/query_test/test_compressed_formats.py
----------------------------------------------------------------------
diff --git a/tests/query_test/test_compressed_formats.py 
b/tests/query_test/test_compressed_formats.py
index 3e754f0..654ea48 100644
--- a/tests/query_test/test_compressed_formats.py
+++ b/tests/query_test/test_compressed_formats.py
@@ -25,7 +25,7 @@ from subprocess import call
 from tests.common.impala_test_suite import ImpalaTestSuite
 from tests.common.skip import SkipIfS3, SkipIfIsilon, SkipIfLocal
 from tests.common.test_dimensions import create_single_exec_option_dimension
-from tests.common.test_vector import TestDimension
+from tests.common.test_vector import ImpalaTestDimension
 from tests.util.filesystem_utils import get_fs_path
 
 # (file extension, table suffix) pairs
@@ -55,15 +55,15 @@ class TestCompressedFormats(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestCompressedFormats, cls).add_test_dimensions()
-    cls.TestMatrix.clear()
-    cls.TestMatrix.add_dimension(\
-        TestDimension('file_format', *['rc', 'seq', 'text']))
-    cls.TestMatrix.add_dimension(\
-        TestDimension('compression_format', *compression_formats))
+    cls.ImpalaTestMatrix.clear()
+    cls.ImpalaTestMatrix.add_dimension(\
+        ImpalaTestDimension('file_format', *['rc', 'seq', 'text']))
+    cls.ImpalaTestMatrix.add_dimension(\
+        ImpalaTestDimension('compression_format', *compression_formats))
     if cls.exploration_strategy() == 'core':
       # Don't run on core.  This test is very slow and we are unlikely
       # to regress here.
-      cls.TestMatrix.add_constraint(lambda v: False);
+      cls.ImpalaTestMatrix.add_constraint(lambda v: False);
 
   @pytest.mark.execute_serially
   def test_compressed_formats(self, vector):
@@ -136,11 +136,11 @@ class TestTableWriters(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestTableWriters, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
     # This class tests many formats, but doesn't use the contraints
     # Each format is tested within one test file, we constrain to text/none
     # as each test file only needs to be run once.
-    cls.TestMatrix.add_constraint(lambda v:
+    cls.ImpalaTestMatrix.add_constraint(lambda v:
         (v.get_value('table_format').file_format =='text' and
         v.get_value('table_format').compression_codec == 'none'))
 
@@ -189,7 +189,7 @@ class TestLargeCompressedFile(ImpalaTestSuite):
 
     if cls.exploration_strategy() != 'exhaustive':
       pytest.skip("skipping if it's not exhaustive test.")
-    cls.TestMatrix.add_constraint(lambda v:
+    cls.ImpalaTestMatrix.add_constraint(lambda v:
         (v.get_value('table_format').file_format =='text' and
         v.get_value('table_format').compression_codec == 'snap'))
 
@@ -267,9 +267,9 @@ class TestBzip2Streaming(ImpalaTestSuite):
 
     if cls.exploration_strategy() != 'exhaustive':
       pytest.skip("skipping if it's not exhaustive test.")
-    cls.TestMatrix.add_dimension(
-        TestDimension('max_scan_range_length', *cls.MAX_SCAN_RANGE_LENGTHS))
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('max_scan_range_length', 
*cls.MAX_SCAN_RANGE_LENGTHS))
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('table_format').file_format == 'text' and\
         v.get_value('table_format').compression_codec == 'bzip')
 

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/query_test/test_decimal_casting.py
----------------------------------------------------------------------
diff --git a/tests/query_test/test_decimal_casting.py 
b/tests/query_test/test_decimal_casting.py
index 69a9555..b23e790 100644
--- a/tests/query_test/test_decimal_casting.py
+++ b/tests/query_test/test_decimal_casting.py
@@ -23,7 +23,7 @@ from metacomm.combinatorics.all_pairs2 import all_pairs2 as 
all_pairs
 from random import randint
 
 from tests.common.impala_test_suite import ImpalaTestSuite
-from tests.common.test_vector import TestDimension, TestMatrix
+from tests.common.test_vector import ImpalaTestDimension, ImpalaTestMatrix
 
 class TestDecimalCasting(ImpalaTestSuite):
   """Test Suite to verify that casting to Decimal works.
@@ -55,11 +55,11 @@ class TestDecimalCasting(ImpalaTestSuite):
 
   @classmethod
   def add_test_dimensions(cls):
-    cls.TestMatrix = TestMatrix()
-    cls.TestMatrix.add_dimension(TestDimension('decimal_type',
+    cls.ImpalaTestMatrix = ImpalaTestMatrix()
+    cls.ImpalaTestMatrix.add_dimension(ImpalaTestDimension('decimal_type',
         *TestDecimalCasting.DECIMAL_TYPES_MAP[cls.exploration_strategy()]))
-    cls.TestMatrix.add_dimension(
-        TestDimension('cast_from', *TestDecimalCasting.CAST_FROM))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('cast_from', *TestDecimalCasting.CAST_FROM))
     cls.iterations = 1
 
   def setup_method(self, method):

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/query_test/test_decimal_queries.py
----------------------------------------------------------------------
diff --git a/tests/query_test/test_decimal_queries.py 
b/tests/query_test/test_decimal_queries.py
index f95d940..80caf56 100644
--- a/tests/query_test/test_decimal_queries.py
+++ b/tests/query_test/test_decimal_queries.py
@@ -20,7 +20,7 @@
 from copy import copy
 
 from tests.common.impala_test_suite import ImpalaTestSuite
-from tests.common.test_vector import TestDimension
+from tests.common.test_vector import ImpalaTestDimension
 
 class TestDecimalQueries(ImpalaTestSuite):
   BATCH_SIZES = [0, 1]
@@ -32,13 +32,13 @@ class TestDecimalQueries(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestDecimalQueries, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(
-        TestDimension('batch_size', *TestDecimalQueries.BATCH_SIZES))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('batch_size', *TestDecimalQueries.BATCH_SIZES))
 
     # Hive < 0.11 does not support decimal so we can't run these tests against 
the other
     # file formats.
     # TODO: Enable them on Hive >= 0.11.
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         (v.get_value('table_format').file_format == 'text' and
          v.get_value('table_format').compression_codec == 'none') or
          v.get_value('table_format').file_format == 'parquet')
@@ -58,7 +58,7 @@ class TestAvroDecimalQueries(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestAvroDecimalQueries, cls).add_test_dimensions()
-    cls.TestMatrix.add_constraint(lambda v:
+    cls.ImpalaTestMatrix.add_constraint(lambda v:
         (v.get_value('table_format').file_format == 'avro' and
          v.get_value('table_format').compression_codec == 'snap'))
 

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/query_test/test_delimited_text.py
----------------------------------------------------------------------
diff --git a/tests/query_test/test_delimited_text.py 
b/tests/query_test/test_delimited_text.py
index 7c6679f..779397c 100644
--- a/tests/query_test/test_delimited_text.py
+++ b/tests/query_test/test_delimited_text.py
@@ -37,9 +37,10 @@ class TestDelimitedText(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestDelimitedText, cls).add_test_dimensions()
-    cls.TestMatrix.add_dimension(create_single_exec_option_dimension())
+    cls.ImpalaTestMatrix.add_dimension(create_single_exec_option_dimension())
     # Only run on delimited text with no compression.
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_dimension(
+        create_uncompressed_text_dimension(cls.get_workload()))
 
   def test_delimited_text(self, vector, unique_database):
     self.run_test_case('QueryTest/delimited-text', vector, unique_database)

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/query_test/test_errorlog.py
----------------------------------------------------------------------
diff --git a/tests/query_test/test_errorlog.py 
b/tests/query_test/test_errorlog.py
index bbb82c5..0580764 100644
--- a/tests/query_test/test_errorlog.py
+++ b/tests/query_test/test_errorlog.py
@@ -33,9 +33,9 @@ class TestErrorLogs(ImpalaTestSuite):
   @classmethod
   def add_test_dimensions(cls):
     super(TestErrorLogs, cls).add_test_dimensions()
-    cls.TestMatrix.add_constraint(lambda v:\
+    cls.ImpalaTestMatrix.add_constraint(lambda v:\
         v.get_value('table_format').file_format == 'text')
-    cls.TestMatrix.add_dimension(create_exec_option_dimension(
+    cls.ImpalaTestMatrix.add_dimension(create_exec_option_dimension(
         cluster_sizes=[0], disable_codegen_options=[False], batch_sizes=[0]))
 
   def test_errorlog(self, vector):

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/f590bc0d/tests/query_test/test_exprs.py
----------------------------------------------------------------------
diff --git a/tests/query_test/test_exprs.py b/tests/query_test/test_exprs.py
index 3a9beb3..a52b2a9 100644
--- a/tests/query_test/test_exprs.py
+++ b/tests/query_test/test_exprs.py
@@ -20,7 +20,7 @@ import pytest
 from tests.common.impala_test_suite import ImpalaTestSuite
 from tests.common.test_dimensions import create_exec_option_dimension
 from tests.common.test_dimensions import create_uncompressed_text_dimension
-from tests.common.test_vector import TestDimension
+from tests.common.test_vector import ImpalaTestDimension
 from tests.util.test_file_parser import QueryTestSectionReader
 
 class TestExprs(ImpalaTestSuite):
@@ -33,10 +33,11 @@ class TestExprs(ImpalaTestSuite):
     super(TestExprs, cls).add_test_dimensions()
     # Test with and without expr rewrites to cover regular expr evaluations
     # as well as constant folding, in particular, timestamp literals.
-    cls.TestMatrix.add_dimension(TestDimension('enable_expr_rewrites', *[0,1]))
+    cls.ImpalaTestMatrix.add_dimension(
+        ImpalaTestDimension('enable_expr_rewrites', *[0,1]))
     if cls.exploration_strategy() == 'core':
       # Test with file format that supports codegen
-      cls.TestMatrix.add_constraint(lambda v:\
+      cls.ImpalaTestMatrix.add_constraint(lambda v:\
           v.get_value('table_format').file_format == 'text' and\
           v.get_value('table_format').compression_codec == 'none')
 
@@ -81,12 +82,13 @@ class TestExprLimits(ImpalaTestSuite):
     if cls.exploration_strategy() != 'exhaustive':
       # Ensure the test runs with codegen enabled and disabled, even when the
       # exploration strategy is not exhaustive.
-      cls.TestMatrix.clear_dimension('exec_option')
-      cls.TestMatrix.add_dimension(create_exec_option_dimension(
+      cls.ImpalaTestMatrix.clear_dimension('exec_option')
+      cls.ImpalaTestMatrix.add_dimension(create_exec_option_dimension(
           cluster_sizes=[0], disable_codegen_options=[False, True], 
batch_sizes=[0]))
 
     # There is no reason to run these tests using all dimensions.
-    
cls.TestMatrix.add_dimension(create_uncompressed_text_dimension(cls.get_workload()))
+    cls.ImpalaTestMatrix.add_dimension(
+        create_uncompressed_text_dimension(cls.get_workload()))
 
   def test_expr_child_limit(self, vector):
     # IN predicate


Reply via email to