This is an automated email from the ASF dual-hosted git repository.

adelapena pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra-dtest.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 6f3a4cb  Fix unexpectedly ignored and repeated tests
6f3a4cb is described below

commit 6f3a4cb3c55323156c2b8686bea07a3362f3e861
Author: Ruslan Fomkin <[email protected]>
AuthorDate: Mon Sep 6 14:07:13 2021 +0200

    Fix unexpectedly ignored and repeated tests
    
    patch by Ruslan Fomkin; reviewed by Andres de la Peña and Ekaterina 
Dimitrova for CASSANDRA-16841
---
 .travis.yml                                  |   3 +-
 CONTRIBUTING.md                              |   2 +-
 bootstrap_test.py                            |  13 +-
 conftest.py                                  | 121 +++++++++---------
 meta_tests/conftest_test.py                  | 176 ++++++++++++++++++---------
 sstable_generation_loading_test.py           |   4 +-
 upgrade_tests/README.md                      |   9 ++
 upgrade_tests/bootstrap_upgrade_test.py      |   4 +-
 upgrade_tests/cql_tests.py                   |   1 -
 upgrade_tests/paging_test.py                 |   2 -
 upgrade_tests/regression_test.py             |   1 -
 upgrade_tests/storage_engine_upgrade_test.py |  18 +--
 12 files changed, 212 insertions(+), 142 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 3fdb3bc..e170b51 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -16,7 +16,8 @@ script:
   # I know we don't enforce line length but if you introduce
   # 200-char lines you are doing something terribly wrong.
   # lint all files for everything but line length errors
-  - git diff apache/trunk...HEAD -U0 | pycodestyle --ignore=E501 --diff
+  # and W503, since it is inconflict with W504
+  - git diff apache/trunk...HEAD -U0 | pycodestyle --ignore=E501,W503 --diff
   # lint all files except json_test.py for line length errors
   - git diff apache/trunk...HEAD -U0 | pycodestyle --diff 
--exclude='json_test.py' --exclude='meta_tests/assertion_test.py' 
--max-line-length=200
   - pytest --metatests
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c881d1a..a38a241 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -14,7 +14,7 @@ Another way to make sure that your code will pass compliance 
checks is to run **
 ```
 flake8 --install-hook
 git config flake8.strict true
-git config flake8.ignore E501,F811,F812,F821,F822,F823,F831,F841,N8,C9
+git config flake8.ignore E501,F811,F812,F821,F822,F823,F831,F841,N8,C9,W503
 ```
 
 We do not enforce **import** sorting, but if you choose to organize imports by 
some convention, use the `isort` tool (`pip install isort`).
diff --git a/bootstrap_test.py b/bootstrap_test.py
index dc06917..5c66503 100644
--- a/bootstrap_test.py
+++ b/bootstrap_test.py
@@ -28,7 +28,8 @@ since = pytest.mark.since
 ported_to_in_jvm = pytest.mark.ported_to_in_jvm
 logger = logging.getLogger(__name__)
 
-class TestBootstrap(Tester):
+
+class BootstrapTester(Tester):
     byteman_submit_path_pre_4_0 = './byteman/pre4.0/stream_failure.btm'
     byteman_submit_path_4_0 = './byteman/4.0/stream_failure.btm'
 
@@ -1097,3 +1098,13 @@ class TestBootstrap(Tester):
         # 3. check host_id in other node's table
         session1 = self.patient_exclusive_cql_connection(node1)
         assert_one(session1, "SELECT host_id FROM system.peers_v2 WHERE peer = 
{}".format(address2), [uuid.UUID(host_id)])
+
+
+class TestBootstrap(BootstrapTester):
+    """
+    This child class is a helper for PyTest to pick up the test methods.
+    Since the same test methods are executed as part of upgrade, this helper 
child class is
+    necessary to avoid double execution of the same tests.
+    It is necessary to put some dummy expression in this child class.
+    """
+    pass
diff --git a/conftest.py b/conftest.py
index 33e188f..347c696 100644
--- a/conftest.py
+++ b/conftest.py
@@ -1,6 +1,5 @@
 import copy
 import collections
-import inspect
 import logging
 import os
 import platform
@@ -545,53 +544,55 @@ def cassandra_dir_and_version(config):
     return cassandra_dir, cassandra_version
 
 
-def has_mark(item, mark):
-    if item.get_closest_marker(mark) is not None:
-        return True
-    else:
-        for item_module in inspect.getmembers(item.module, inspect.isclass):
-            if hasattr(item_module[1], "pytestmark"):
-                mark_names = [m.name for m in item_module[1].pytestmark]
-                if mark in mark_names:
-                    return True
-
-        return False
-
-
-def _is_skippable(item, mark, include_marked, include_other):
-    if has_mark(item, mark):
-        if include_marked:
-            return False
+class SkipConditions:
+    def __init__(self, dtest_config, sufficient_resources):
+        self.skip_upgrade_tests = not dtest_config.execute_upgrade_tests and 
not dtest_config.execute_upgrade_tests_only
+        self.skip_non_upgrade_tests = dtest_config.execute_upgrade_tests_only
+        self.skip_resource_intensive_due_to_resources = (
+            not dtest_config.force_execution_of_resource_intensive_tests
+            and not sufficient_resources)
+        self.skip_resource_intensive_tests = (
+            self.skip_resource_intensive_due_to_resources
+            or dtest_config.skip_resource_intensive_tests)
+        self.skip_non_resource_intensive_tests = 
dtest_config.only_resource_intensive_tests
+        self.skip_vnodes_tests = not dtest_config.use_vnodes
+        self.skip_no_vnodes_tests = dtest_config.use_vnodes
+        self.skip_no_offheap_memtables_tests = 
dtest_config.use_off_heap_memtables
+
+    @staticmethod
+    def _is_skippable(item, mark, skip_marked, skip_non_marked):
+        if item.get_closest_marker(mark) is not None:
+            if skip_marked:
+                logger.info("SKIP: Skipping %s because it is marked with %s" % 
(item, mark))
+                return True
+            else:
+                return False
         else:
-            logger.info("SKIP: Skipping %s because it is marked with %s" % 
(item, mark))
-            return True
-    else:
-        if include_other:
-            return False
-        else:
-            logger.info("SKIP: Skipping %s because it is not marked with %s" % 
(item, mark))
-            return True
-
-
-def is_skippable(item,
-                 include_upgrade_tests,
-                 include_non_upgrade_tests,
-                 include_resource_intensive_tests,
-                 include_non_resource_intensive_tests,
-                 include_vnodes_tests,
-                 include_no_vnodes_tests,
-                 include_no_offheap_memtables_tests):
-
-    skippable = False
-
-    skippable = skippable or _is_skippable(item, "upgrade_test", 
include_upgrade_tests, include_non_upgrade_tests)
-    skippable = skippable or _is_skippable(item, "resource_intensive", 
include_resource_intensive_tests, include_non_resource_intensive_tests)
-    skippable = skippable or _is_skippable(item, "vnodes", 
include_vnodes_tests, True)
-    skippable = skippable or _is_skippable(item, "no_vnodes", 
include_no_vnodes_tests, True)
-    skippable = skippable or _is_skippable(item, "no_offheap_memtables", 
include_no_offheap_memtables_tests, True)
-    skippable = skippable or _is_skippable(item, "depends_driver", False, True)
-
-    return skippable
+            if skip_non_marked:
+                logger.info("SKIP: Skipping %s because it is not marked with 
%s" % (item, mark))
+                return True
+            else:
+                return False
+
+    def is_skippable(self, item):
+        return (self._is_skippable(item, "upgrade_test",
+                                   skip_marked=self.skip_upgrade_tests,
+                                   skip_non_marked=self.skip_non_upgrade_tests)
+                or self._is_skippable(item, "resource_intensive",
+                                      
skip_marked=self.skip_resource_intensive_tests,
+                                      
skip_non_marked=self.skip_non_resource_intensive_tests)
+                or self._is_skippable(item, "vnodes",
+                                      skip_marked=self.skip_vnodes_tests,
+                                      skip_non_marked=False)
+                or self._is_skippable(item, "no_vnodes",
+                                      skip_marked=self.skip_no_vnodes_tests,
+                                      skip_non_marked=False)
+                or self._is_skippable(item, "no_offheap_memtables",
+                                      
skip_marked=self.skip_no_offheap_memtables_tests,
+                                      skip_non_marked=False)
+                or self._is_skippable(item, "depends_driver",
+                                      skip_marked=True,
+                                      skip_non_marked=False))
 
 
 def pytest_collection_modifyitems(items, config):
@@ -605,28 +606,16 @@ def pytest_collection_modifyitems(items, config):
     selected_items = []
     deselected_items = []
 
-    can_run_resource_intensive_tests = 
dtest_config.force_execution_of_resource_intensive_tests or 
sufficient_system_resources_for_resource_intensive_tests()
-    if not can_run_resource_intensive_tests:
-        logger.info("Resource intensive tests will be skipped because there is 
not enough system resource "
-                    "and --force-resource-intensive-tests was not specified")
+    sufficient_resources = 
sufficient_system_resources_for_resource_intensive_tests()
+    skip_conditions = SkipConditions(dtest_config, sufficient_resources)
 
-    include_upgrade_tests = dtest_config.execute_upgrade_tests or 
dtest_config.execute_upgrade_tests_only
-    include_non_upgrade_tests = not dtest_config.execute_upgrade_tests_only
-    include_resource_intensive_tests = can_run_resource_intensive_tests and 
not dtest_config.skip_resource_intensive_tests
-    include_non_resource_intensive_tests = not 
dtest_config.only_resource_intensive_tests
-    include_vnodes_tests = dtest_config.use_vnodes
-    include_no_vnodes_tests = not dtest_config.use_vnodes
-    include_no_offheap_memtables_tests = not 
dtest_config.use_off_heap_memtables
+    if skip_conditions.skip_resource_intensive_due_to_resources:
+        logger.info("Resource intensive tests will be skipped because "
+                    "there is not enough system resources "
+                    "and --force-resource-intensive-tests was not specified")
 
     for item in items:
-        deselect_test = is_skippable(item,
-                                     include_upgrade_tests,
-                                     include_non_upgrade_tests,
-                                     include_resource_intensive_tests,
-                                     include_non_resource_intensive_tests,
-                                     include_vnodes_tests,
-                                     include_no_vnodes_tests,
-                                     include_no_offheap_memtables_tests)
+        deselect_test = SkipConditions.is_skippable(skip_conditions, item)
 
         if deselect_test:
             deselected_items.append(item)
diff --git a/meta_tests/conftest_test.py b/meta_tests/conftest_test.py
index 935f657..0bbdff3 100644
--- a/meta_tests/conftest_test.py
+++ b/meta_tests/conftest_test.py
@@ -1,32 +1,29 @@
-from unittest import TestCase
+import pytest
 
-from conftest import is_skippable
+from conftest import SkipConditions
 from mock import Mock
 
 
+class DTestConfigMock():
+    def __init__(self):
+        self.execute_upgrade_tests = False
+        self.execute_upgrade_tests_only = False
+        self.force_execution_of_resource_intensive_tests = False
+        self.only_resource_intensive_tests = False
+        self.skip_resource_intensive_tests = False
+        self.use_vnodes = False
+        self.use_off_heap_memtables = False
+
+    def set(self, config):
+        if config != "":
+            setattr(self, config, True)
+
+
 def _mock_responses(responses, default_response=None):
     return lambda arg: responses[arg] if arg in responses else default_response
 
 
-def _is_skippable(item,
-                  include_upgrade_tests=True,
-                  include_non_upgrade_tests=True,
-                  include_resource_intensive_tests=True,
-                  include_non_resource_intensive_tests=True,
-                  include_vnodes_tests=True,
-                  include_no_vnodes_tests=True,
-                  include_no_offheap_memtables_tests=True):
-    return is_skippable(item,
-                        include_upgrade_tests,
-                        include_non_upgrade_tests,
-                        include_resource_intensive_tests,
-                        include_non_resource_intensive_tests,
-                        include_vnodes_tests,
-                        include_no_vnodes_tests,
-                        include_no_offheap_memtables_tests)
-
-
-class ConfTestTest(TestCase):
+class TestConfTest(object):
     regular_test = Mock(name="regular_test_mock")
     upgrade_test = Mock(name="upgrade_test_mock")
     resource_intensive_test = Mock(name="resource_intensive_test_mock")
@@ -35,39 +32,106 @@ class ConfTestTest(TestCase):
     no_offheap_memtables_test = Mock(name="no_offheap_memtables_test_mock")
     depends_driver_test = Mock(name="depends_driver_test_mock")
 
-    def setup_method(self, method):
+    def setup_method(self):
         self.regular_test.get_closest_marker.side_effect = _mock_responses({})
-        self.upgrade_test.get_closest_marker.side_effect = 
_mock_responses({"upgrade_test": True})
-        self.resource_intensive_test.get_closest_marker.side_effect = 
_mock_responses({"resource_intensive": True})
-        self.vnodes_test.get_closest_marker.side_effect = 
_mock_responses({"vnodes": True})
-        self.no_vnodes_test.get_closest_marker.side_effect = 
_mock_responses({"no_vnodes": True})
-        self.no_offheap_memtables_test.get_closest_marker.side_effect = 
_mock_responses({"no_offheap_memtables": True})
-        self.depends_driver_test.get_closest_marker.side_effect = 
_mock_responses({"depends_driver": True})
-
-    def test_regular_test(self):
-        assert not _is_skippable(item=self.regular_test)
-        assert _is_skippable(item=self.regular_test, 
include_non_upgrade_tests=False)
-        assert _is_skippable(item=self.regular_test, 
include_non_resource_intensive_tests=False)
-
-    def test_upgrade_test(self):
-        assert not _is_skippable(item=self.upgrade_test)
-        assert _is_skippable(item=self.upgrade_test, 
include_upgrade_tests=False)
-
-    def test_resource_intensive_test(self):
-        assert not _is_skippable(item=self.resource_intensive_test)
-        assert _is_skippable(item=self.resource_intensive_test, 
include_resource_intensive_tests=False)
-
-    def test_vnodes_test(self):
-        assert not _is_skippable(item=self.vnodes_test)
-        assert _is_skippable(item=self.vnodes_test, include_vnodes_tests=False)
-
-    def test_no_vnodes_test(self):
-        assert not _is_skippable(item=self.no_vnodes_test)
-        assert _is_skippable(item=self.no_vnodes_test, 
include_no_vnodes_tests=False)
-
-    def test_no_offheap_memtables_test(self):
-        assert not _is_skippable(item=self.no_offheap_memtables_test)
-        assert _is_skippable(item=self.no_offheap_memtables_test, 
include_no_offheap_memtables_tests=False)
-
-    def test_depends_driver_test(self):
-        assert _is_skippable(item=self.depends_driver_test)
+        self.upgrade_test.get_closest_marker.side_effect = _mock_responses(
+            {"upgrade_test": True})
+        self.resource_intensive_test.get_closest_marker.side_effect = 
_mock_responses(
+            {"resource_intensive": True})
+        self.vnodes_test.get_closest_marker.side_effect = _mock_responses(
+            {"vnodes": True})
+        self.no_vnodes_test.get_closest_marker.side_effect = _mock_responses(
+            {"no_vnodes": True})
+        self.no_offheap_memtables_test.get_closest_marker.side_effect = 
_mock_responses(
+            {"no_offheap_memtables": True})
+        self.depends_driver_test.get_closest_marker.side_effect = 
_mock_responses(
+            {"depends_driver": True})
+
+    @pytest.mark.parametrize("item", [upgrade_test, resource_intensive_test, 
vnodes_test,
+                                      depends_driver_test])
+    def test_skip_if_no_config(self, item):
+        dtest_config = DTestConfigMock()
+        assert SkipConditions(dtest_config, False).is_skippable(item)
+
+    @pytest.mark.parametrize("item", [regular_test, resource_intensive_test, 
no_vnodes_test,
+                                      no_offheap_memtables_test])
+    def test_include_if_no_config(self, item):
+        dtest_config = DTestConfigMock()
+        assert not SkipConditions(dtest_config, True).is_skippable(item)
+
+    @pytest.mark.parametrize("item,config",
+                             [(upgrade_test, "execute_upgrade_tests_only"),
+                              (resource_intensive_test, 
"only_resource_intensive_tests")])
+    def test_include_if_config_only(self, item, config):
+        dtest_config = DTestConfigMock()
+        dtest_config.set(config)
+        assert not SkipConditions(dtest_config, True).is_skippable(item)
+
+    @pytest.mark.parametrize("item",
+                             [regular_test, upgrade_test, 
resource_intensive_test, vnodes_test,
+                              no_vnodes_test, no_offheap_memtables_test])
+    @pytest.mark.parametrize("only_item,config",
+                             [(upgrade_test, "execute_upgrade_tests_only"),
+                              (resource_intensive_test, 
"only_resource_intensive_tests")])
+    def test_config_only(self, item, only_item, config):
+        dtest_config = DTestConfigMock()
+        dtest_config.set(config)
+        skip_conditions = SkipConditions(dtest_config, True)
+        if item != only_item:
+            assert skip_conditions.is_skippable(item)
+        else:
+            assert not skip_conditions.is_skippable(item)
+
+    @pytest.mark.parametrize("item",
+                             [regular_test, upgrade_test, 
resource_intensive_test,
+                              no_vnodes_test, no_offheap_memtables_test])
+    def test_include_if_execute_upgrade(self, item):
+        dtest_config = DTestConfigMock()
+        dtest_config.set("execute_upgrade_tests")
+        assert not SkipConditions(dtest_config, True).is_skippable(item)
+
+    @pytest.mark.parametrize("config, sufficient_resources",
+                             [("", False),
+                              ("skip_resource_intensive_tests", True),
+                              ("skip_resource_intensive_tests", False)])
+    def test_skip_resource_intensive(self, config, sufficient_resources):
+        dtest_config = DTestConfigMock()
+        dtest_config.set(config)
+        assert SkipConditions(dtest_config, 
sufficient_resources).is_skippable(self.resource_intensive_test)
+
+    @pytest.mark.parametrize("sufficient_resources", [True, False])
+    def test_include_resource_intensive_if_any_resources(self, 
sufficient_resources):
+        dtest_config = DTestConfigMock()
+        dtest_config.set("force_execution_of_resource_intensive_tests")
+        assert not SkipConditions(dtest_config, 
sufficient_resources).is_skippable(self.resource_intensive_test)
+
+    def test_skip_resource_intensive_wins(self):
+        dtest_config = DTestConfigMock()
+        dtest_config.set("force_execution_of_resource_intensive_tests")
+        dtest_config.set("only_resource_intensive_tests")
+        dtest_config.set("skip_resource_intensive_tests")
+        assert SkipConditions(dtest_config, 
True).is_skippable(self.resource_intensive_test)
+
+    @pytest.mark.parametrize("item",
+                             [regular_test, resource_intensive_test, 
vnodes_test,
+                              no_offheap_memtables_test])
+    def test_if_config_vnodes(self, item):
+        dtest_config = DTestConfigMock()
+        dtest_config.set("use_vnodes")
+        assert not SkipConditions(dtest_config, True).is_skippable(item)
+
+    def test_skip_no_offheap_memtables(self):
+        dtest_config = DTestConfigMock()
+        dtest_config.set("use_off_heap_memtables")
+        assert SkipConditions(dtest_config, 
True).is_skippable(self.no_offheap_memtables_test)
+
+    @pytest.mark.parametrize("config", ["", "execute_upgrade_tests", 
"execute_upgrade_tests_only",
+                                        
"force_execution_of_resource_intensive_tests",
+                                        "only_resource_intensive_tests",
+                                        "skip_resource_intensive_tests", 
"use_vnodes",
+                                        "use_off_heap_memtables"])
+    @pytest.mark.parametrize("sufficient_resources", [True, False])
+    def test_skip_depends_driver_always(self, config, sufficient_resources):
+        dtest_config = DTestConfigMock()
+        dtest_config.set(config)
+        assert SkipConditions(dtest_config, 
sufficient_resources).is_skippable(self.depends_driver_test)
diff --git a/sstable_generation_loading_test.py 
b/sstable_generation_loading_test.py
index cab39ec..502aaf9 100644
--- a/sstable_generation_loading_test.py
+++ b/sstable_generation_loading_test.py
@@ -22,7 +22,7 @@ logger = logging.getLogger(__name__)
 
 # Also used by upgrade_tests/storage_engine_upgrade_test
 # to test loading legacy sstables
-class TestBaseSStableLoader(Tester):
+class BaseSStableLoaderTester(Tester):
 
     @pytest.fixture(autouse=True)
     def fixture_add_additional_log_patterns(self, fixture_dtest_setup):
@@ -250,7 +250,7 @@ class TestBaseSStableLoader(Tester):
                     assert 0 == len(temp_files), "Temporary files were not 
cleaned up."
 
 
-class TestSSTableGenerationAndLoading(TestBaseSStableLoader):
+class TestSSTableGenerationAndLoading(BaseSStableLoaderTester):
 
     def test_sstableloader_uppercase_keyspace_name(self):
         """
diff --git a/upgrade_tests/README.md b/upgrade_tests/README.md
index 7dd5dfa..1c53f84 100644
--- a/upgrade_tests/README.md
+++ b/upgrade_tests/README.md
@@ -144,6 +144,13 @@ Though that can be very verbose! To reduce the output a 
bit, you can use somethi
 This procedure is very similar to adding a single test, but requires a little 
bit more work.
 In the above example, the [cql_tests.py](cql_tests.py) module has already been 
built to do the necessary code generation covering the various upgrade paths, 
and that module is a good reference for seeing how the code generation works 
(see the end of the file).
 
+The upgrade tests need to be marked as upgrade tests to be selected for the 
execution. It happens
+implicitly if the test class inherits from `UpgradeTester`. If not, then the 
base test class,
+the test class or the test method needs to be marked with:
+```python
[email protected]_test
+```
+
 The basic module creation procedure:
 
 - Add the new module file.
@@ -151,6 +158,8 @@ The basic module creation procedure:
 - If you don't extend UpgradeTester, set ```__test__ = False```. This will 
prevent
 nosetests from directly running the base class as a test, since the class is 
intended
 to act as a template and not be directly executed.
+- If you don't extend UpgradeTester, mark the base class or each class if no 
base class with 
+`@pytest.mark.upgrade_test`.
 - At the end of the module, you'll query the supported upgrade manifest using
 [upgrade_manifest.py](upgrade_manifest.py):build_upgrade_pairs. Similar to 
[cql_tests.py](cql_tests.py) you'll probably want to combine the upgrade paths 
with other configurations for a more complete test matrix. Don't forget to do 
the class gen
 for each class in your module.
diff --git a/upgrade_tests/bootstrap_upgrade_test.py 
b/upgrade_tests/bootstrap_upgrade_test.py
index 20352e5..cc007eb 100644
--- a/upgrade_tests/bootstrap_upgrade_test.py
+++ b/upgrade_tests/bootstrap_upgrade_test.py
@@ -1,12 +1,12 @@
 import pytest
 
-from bootstrap_test import TestBootstrap
+from bootstrap_test import BootstrapTester
 
 since = pytest.mark.since
 
 
 @pytest.mark.upgrade_test
-class TestBootstrapUpgrade(TestBootstrap):
+class TestBootstrapUpgrade(BootstrapTester):
 
     """
     @jira_ticket CASSANDRA-11841
diff --git a/upgrade_tests/cql_tests.py b/upgrade_tests/cql_tests.py
index 1bb979e..cb4d566 100644
--- a/upgrade_tests/cql_tests.py
+++ b/upgrade_tests/cql_tests.py
@@ -35,7 +35,6 @@ since = pytest.mark.since
 logger = logging.getLogger(__name__)
 
 
[email protected]_test
 class TestCQL(UpgradeTester):
 
     def is_40_or_greater(self):
diff --git a/upgrade_tests/paging_test.py b/upgrade_tests/paging_test.py
index 57106b0..34f543f 100644
--- a/upgrade_tests/paging_test.py
+++ b/upgrade_tests/paging_test.py
@@ -37,7 +37,6 @@ class BasePagingTester(UpgradeTester):
         return cursor
 
 
[email protected]_test
 class TestPagingSize(BasePagingTester, PageAssertionMixin):
     """
     Basic tests relating to page size (relative to results set)
@@ -442,7 +441,6 @@ class TestPagingWithModifiers(BasePagingTester, 
PageAssertionMixin):
             )
 
 
[email protected]_test
 class TestPagingData(BasePagingTester, PageAssertionMixin):
 
     def test_basic_paging(self):
diff --git a/upgrade_tests/regression_test.py b/upgrade_tests/regression_test.py
index 138774f..69c8d6f 100644
--- a/upgrade_tests/regression_test.py
+++ b/upgrade_tests/regression_test.py
@@ -20,7 +20,6 @@ since = pytest.mark.since
 logger = logging.getLogger(__name__)
 
 
[email protected]_test
 class TestForRegressions(UpgradeTester):
     """
     Catch-all class for regression tests on specific versions.
diff --git a/upgrade_tests/storage_engine_upgrade_test.py 
b/upgrade_tests/storage_engine_upgrade_test.py
index f5303fc..2a4fe0c 100644
--- a/upgrade_tests/storage_engine_upgrade_test.py
+++ b/upgrade_tests/storage_engine_upgrade_test.py
@@ -4,7 +4,7 @@ import pytest
 import logging
 
 from dtest import Tester, MAJOR_VERSION_4
-from sstable_generation_loading_test import TestBaseSStableLoader
+from sstable_generation_loading_test import BaseSStableLoaderTester
 from thrift_bindings.thrift010.Cassandra import (ConsistencyLevel, Deletion,
                                            Mutation, SlicePredicate,
                                            SliceRange)
@@ -464,7 +464,7 @@ class TestBootstrapAfterUpgrade(TestStorageEngineUpgrade):
 
 @pytest.mark.upgrade_test
 @since('3.0', max_version='3.99')
-class TestLoadKaSStables(TestBaseSStableLoader):
+class TestLoadKaSStables(BaseSStableLoaderTester):
     upgrade_test = True
     upgrade_from = '2.1.20'
     jvm_args = LEGACY_SSTABLES_JVM_ARGS
@@ -472,7 +472,7 @@ class TestLoadKaSStables(TestBaseSStableLoader):
 
 @pytest.mark.upgrade_test
 @since('3.0', max_version='3.99')
-class TestLoadKaCompactSStables(TestBaseSStableLoader):
+class TestLoadKaCompactSStables(BaseSStableLoaderTester):
     upgrade_test = True
     upgrade_from = '2.1.20'
     jvm_args = LEGACY_SSTABLES_JVM_ARGS
@@ -481,7 +481,7 @@ class TestLoadKaCompactSStables(TestBaseSStableLoader):
 
 @pytest.mark.upgrade_test
 @since('3.0', max_version='3.99')
-class TestLoadLaSStables(TestBaseSStableLoader):
+class TestLoadLaSStables(BaseSStableLoaderTester):
     upgrade_test = True
     upgrade_from = '2.2.13'
     jvm_args = LEGACY_SSTABLES_JVM_ARGS
@@ -489,7 +489,7 @@ class TestLoadLaSStables(TestBaseSStableLoader):
 
 @pytest.mark.upgrade_test
 @since('3.0', max_version='3.99')
-class TestLoadLaCompactSStables(TestBaseSStableLoader):
+class TestLoadLaCompactSStables(BaseSStableLoaderTester):
     upgrade_test = True
     upgrade_from = '2.2.13'
     jvm_args = LEGACY_SSTABLES_JVM_ARGS
@@ -498,25 +498,25 @@ class TestLoadLaCompactSStables(TestBaseSStableLoader):
 
 @pytest.mark.upgrade_test
 @since('4.0', max_version='4.99')
-class TestLoadMdSStables(TestBaseSStableLoader):
+class TestLoadMdSStables(BaseSStableLoaderTester):
     upgrade_from = '3.0.17'
 
 
 @pytest.mark.upgrade_test
 @since('4.0', max_version='4.99')
-class TestLoadMdCompactSStables(TestBaseSStableLoader):
+class TestLoadMdCompactSStables(BaseSStableLoaderTester):
     upgrade_from = '3.0.17'
     test_compact = True
 
 
 @pytest.mark.upgrade_test
 @since('4.0', max_version='4.99')
-class TestLoadMdThreeOneOneSStables(TestBaseSStableLoader):
+class TestLoadMdThreeOneOneSStables(BaseSStableLoaderTester):
     upgrade_from = '3.11.3'
 
 
 @pytest.mark.upgrade_test
 @since('4.0', max_version='4.99')
-class TestLoadMdThreeOneOneCompactSStables(TestBaseSStableLoader):
+class TestLoadMdThreeOneOneCompactSStables(BaseSStableLoaderTester):
     upgrade_from = '3.11.3'
     test_compact = True

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to