diff --git a/test_set/cvp-sanity/pytest.ini b/test_set/cvp-sanity/pytest.ini
index 3e970a4..a5828a2 100644
--- a/test_set/cvp-sanity/pytest.ini
+++ b/test_set/cvp-sanity/pytest.ini
@@ -1,5 +1,5 @@
 [pytest]
-norecursedirs = venv
+norecursedirs = venv*
 addopts = -vv --tb=short
 
 log_level=WARNING
diff --git a/test_set/cvp-sanity/tests/test_drivetrain.py b/test_set/cvp-sanity/tests/test_drivetrain.py
index 3c2344b..5281081 100644
--- a/test_set/cvp-sanity/tests/test_drivetrain.py
+++ b/test_set/cvp-sanity/tests/test_drivetrain.py
@@ -284,12 +284,21 @@
     table_with_docker_services = local_salt_client.cmd(tgt='I@gerrit:client',
                                                        param='docker service ls --format "{{.Image}}"',
                                                        expr_form='compound')
-    expected_images = local_salt_client.pillar_get(tgt='gerrit:client',
-                                                   param='docker:client:images')
+    stack_info = local_salt_client.pillar_get(tgt='gerrit:client',
+                                                   param='docker:client:stack')
+
+    expected_images = list()
+    # find services in list of docker clients
+    for key, stack in stack_info.items():
+        if stack.get('service'):
+            stack = [item.get('image') for _,item in stack.get('service').items() if item.get('image')]
+            expected_images += stack
+
     mismatch = {}
     actual_images = {}
     for image in set(table_with_docker_services[table_with_docker_services.keys()[0]].split('\n')):
         actual_images[get_name(image)] = get_tag(image)
+
     for image in set(expected_images):
         im_name = get_name(image)
         if im_name not in actual_images:
