diff --git a/_states/keystonev3.py b/_states/keystonev3.py
index d390c14..615bb64 100644
--- a/_states/keystonev3.py
+++ b/_states/keystonev3.py
@@ -9,7 +9,10 @@
 
 
 def _keystonev3_call(fname, *args, **kwargs):
-    return __salt__['keystonev3.{}'.format(fname)](*args, **kwargs)  # noqa
+    if __opts__.get('test') and not (fname.find('_list') > 0 or fname.find('_get_') > 0):
+        return {'changes':'keystonev3 state {} with options {} {} will be executed'.format(fname, args, kwargs)}
+    else:
+        return __salt__['keystonev3.{}'.format(fname)](*args, **kwargs)  # noqa
 
 
 def endpoint_present(name, url, interface, service_id, cloud_name, **kwargs):
@@ -26,6 +29,7 @@
         cloud_name=cloud_name, **ekwargs)['endpoints']
 
     if not endpoints:
+
         try:
             resp = _keystonev3_call(
                 'endpoint_create', url=url, interface=interface,
@@ -587,7 +591,7 @@
     changes_dict = {
         'name': name,
         'changes': resource_definition,
-        'result': True,
+        'result': _check_test_mode(),
         'comment': '{}{} created'.format(resource, name)
     }
     return changes_dict
@@ -597,7 +601,7 @@
     changes_dict = {
         'name': name,
         'changes': resource_definition,
-        'result': True,
+        'result': _check_test_mode(),
         'comment': '{}{} updated'.format(resource, name)
     }
     return changes_dict
@@ -617,7 +621,7 @@
     changes_dict = {
         'name': name,
         'changes': {"resource": resource, "name": name, "status": 'deleted'},
-        'result': True,
+        'result': _check_test_mode(),
         'comment': '{} {} removed'.format(resource, name)
     }
     return changes_dict
@@ -658,6 +662,13 @@
     return changes_dict
 
 
+def _check_test_mode():
+    if __opts__.get('test'):
+        return None
+    else:
+        return True
+
+
 def _find_failed(name, resource):
     changes_dict = {
         'name': name,
diff --git a/tests/test-requirements.txt b/tests/test-requirements.txt
index 7188b2b..bc7dc7f 100644
--- a/tests/test-requirements.txt
+++ b/tests/test-requirements.txt
@@ -1,3 +1,4 @@
 jsonschema
 reno
 setuptools<45.0.0
+msgpack<1.0.0
