diff --git a/test/support.py b/test/support.py
index a7adc4ebd475ddbef9cd95fb6a1a07b552986b37..dbf01ed40d5bae55ea33a68a379f852ff1099fcc 100644
--- a/test/support.py
+++ b/test/support.py
@@ -56,17 +56,18 @@ LOCAL_RPM = os.path.join(repo_dir(), 'local-pkg-1.0-1.fc22.noarch.rpm')
 # mock objects
 
 
-def mock_comps(seed_persistor):
+def mock_comps(history, seed_persistor):
     comps = dnf.comps.Comps()
-    comps.add_from_xml_filename(COMPS_PATH)
+    comps._add_from_xml_filename(COMPS_PATH)
 
-    persistor = MockGroupPersistor()
+    persistor = history.group
     if seed_persistor:
-        p_som = persistor.group('inst-grp')
-        p_som.pkg_types = dnf.comps.MANDATORY
-        p_som.full_list.extend(('foo', 'bar'))
-
-    return comps, persistor
+        name = 'inst-grp'
+        pkg_types = dnf.comps.MANDATORY
+        p_pep = persistor.new_group(name, name, name, False, pkg_types)
+        persistor.add_group(p_pep)
+        p_pep.add_package(['foo', 'bar'])
+    return comps
 
 
 class _BaseStubMixin(object):
@@ -88,7 +89,7 @@ class _BaseStubMixin(object):
 
         self._conf = FakeConf()
         self._persistor = FakePersistor()
-        self._yumdb = MockYumDB()
+        self._history = None
         self.ds_callback = mock.Mock()
 
     @property
@@ -97,8 +98,14 @@ class _BaseStubMixin(object):
             return self._sack
         return self.init_sack()
 
-    def _activate_group_persistor(self):
-        return MockGroupPersistor()
+    @property
+    def history(self):
+        if self._history:
+            return self._history
+        else:
+            self._history = super(_BaseStubMixin, self).history
+            self._history.reset_db()
+            return self._history
 
     def activate_persistor(self):
         pass
@@ -118,44 +125,13 @@ class _BaseStubMixin(object):
         pass
 
     def read_mock_comps(self, seed_persistor=True):
-        self._comps, self.group_persistor = mock_comps(seed_persistor)
+        self._comps = mock_comps(self.history, seed_persistor)
         return self._comps
 
     def read_all_repos(self):
         pass
 
 
-class HistoryStub(dnf.yum.history.YumHistory):
-    """Stub of dnf.yum.history.YumHistory for easier testing."""
-
-    def __init__(self):
-        """Initialize a stub instance."""
-        self.old_data_pkgs = {}
-
-    def _old_data_pkgs(self, tid, sort=True):
-        """Get packages of a transaction."""
-        if sort:
-            raise NotImplementedError('sorting not implemented yet')
-        return self.old_data_pkgs.get(tid, ())[:]
-
-    def close(self):
-        """Close the history."""
-        pass
-
-    def old(self, tids=[], limit=None, *_args, **_kwargs):
-        """Get transactions with given IDs."""
-        create = lambda tid: dnf.yum.history.YumHistoryTransaction(self,
-            (int(tid), 0, '0:685cc4ac4ce31b9190df1604a96a3c62a3100c35',
-             1, '1:685cc4ac4ce31b9190df1604a96a3c62a3100c36', 0, 0))
-
-        sorted_all_tids = sorted(self.old_data_pkgs.keys(), reverse=True)
-
-        trxs = (create(tid) for tid in tids or sorted_all_tids
-                if tid in self.old_data_pkgs)
-        limited = trxs if limit is None else itertools.islice(trxs, limit)
-        return tuple(limited)
-
-
 class FakeAdvisoryRef(object):
     def __init__(self, ref_id, ref_type=hawkey.REFERENCE_BUGZILLA):
         self.id = ref_id
@@ -235,18 +211,6 @@ def mock_sack(*extra_repos):
     return MockBase(*extra_repos).sack
 
 
-class MockYumDB(mock.Mock):
-    def __init__(self):
-        super(mock.Mock, self).__init__()
-        self.db = {}
-
-    def get_package(self, po):
-        return self.db.setdefault(str(po), mock.Mock())
-
-    def assertLength(self, length):
-        assert(len(self.db) == length)
-
-
 # mock object taken from testbase.py in yum/test:
 class FakeConf(object):
     def __init__(self):
@@ -286,6 +250,7 @@ class FakeConf(object):
         self.showdupesfromrepos = False
         self.tsflags = []
         self.verbose = False
+        self.transformdb = False
         self.yumvar = {'releasever': 'Fedora69'}
 
     def iterkeys(self):
@@ -304,12 +269,6 @@ class FakePersistor(object):
     def since_last_makecache(self):
         return None
 
-
-class MockGroupPersistor(dnf.persistor.GroupPersistor):
-    """Empty persistor that doesn't need any I/O."""
-    def __init__(self):
-        self.db = self._empty_db()
-
 # test cases
 
 
@@ -371,4 +330,4 @@ class Payload(object):
     @property
     def download_size(self):
         """Total size of the download. :api"""
-        return self.size
\ No newline at end of file
+        return self.size