Add test=True suport in keystonev3.py

PROD-34615

Change-Id: I9f2e2b47c7cc74eb0d243a2aae738f1989c373ca
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