diff --git a/.coveragerc b/.coveragerc
index 4ece370a8..356e7801d 100644
--- a/.coveragerc
+++ b/.coveragerc
@@ -4,4 +4,4 @@ source = watcher
 omit = watcher/tests/*,watcher/openstack/*
 
 [report]
-ignore-errors = True
+ignore_errors = True 
diff --git a/.gitreview b/.gitreview
index 616d1af1f..9c9a5332a 100644
--- a/.gitreview
+++ b/.gitreview
@@ -1,4 +1,4 @@
 [gerrit]
 host=review.openstack.org
 port=29418
-project=stackforge/watcher.git
+project=openstack/watcher.git
diff --git a/requirements.txt b/requirements.txt
index 40f059cac..dddeb8c88 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -3,13 +3,13 @@
 # process, which may cause wedges in the gate later.
 
 pbr>=0.6,!=0.7,<1.0
-oslo.config>=1.4.0
+oslo.config==1.14.0
 PasteDeploy==1.5.2
-oslo.messaging
-oslo.db
-oslo.log
-oslo.i18n
-oslo.utils>=1.2.0                       # Apache-2.0
+oslo.messaging==1.16.0
+oslo.db==2.1.0
+oslo.log==1.6.0
+oslo.i18n==2.1.0
+oslo.utils==1.8.0                      # Apache-2.0
 pecan>=0.8
 keystonemiddleware>=1.0.0
 six>=1.7.0,<=1.9.0
@@ -20,10 +20,13 @@ jsonpatch>=1.1
 enum34==1.0.4
 
 # watcher Applier
-python-novaclient
-python-openstackclient
-python-neutronclient
-python-glanceclient
-python-cinderclient
-# Decision Engine
-python-ceilometerclient
\ No newline at end of file
+python-novaclient==2.28.1
+python-openstackclient==1.6.0
+python-neutronclient==3.0.0
+python-glanceclient==1.1.0
+python-cinderclient==1.4.0
+
+# Collector
+python-ceilometerclient==1.5.0
+influxdb==2.9.1
+parsedatetime==1.5
diff --git a/test-requirements.txt b/test-requirements.txt
index acb1f60a4..c9d4d5c63 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -6,13 +6,16 @@ hacking<0.11,>=0.10.0
 coverage>=3.6
 discover
 python-subunit>=0.0.18
-oslotest>=1.2.0  # Apache-2.0
+oslotest==1.8.0  # Apache-2.0
 testrepository>=0.0.18
 testscenarios>=0.4
-testtools>=0.9.36,!=1.2.0
-mock>=1.0
+testtools==1.7.1
+mock==1.3.0
 
 # Doc requirements
 sphinx>=1.1.2,!=1.2.0,!=1.3b1,<1.3
-oslosphinx>=2.2.0  # Apache-2.0
+oslosphinx==3.0.0  # Apache-2.0
 sphinxcontrib-pecanwsme>=0.8
+
+# For PyPI distribution
+twine
diff --git a/watcher/tests/api/v1/test_audits.py b/watcher/tests/api/v1/test_audits.py
index fbe0588e5..485bb565d 100644
--- a/watcher/tests/api/v1/test_audits.py
+++ b/watcher/tests/api/v1/test_audits.py
@@ -33,7 +33,7 @@ from watcher.tests.objects import utils as obj_utils
 def post_get_test_audit(**kw):
     audit = api_utils.audit_post_data(**kw)
     audit_template = db_utils.get_test_audit_template()
-    audit['audit_template_id'] = None
+    del audit['audit_template_id']
     audit['audit_template_uuid'] = kw.get('audit_template_uuid',
                                           audit_template['uuid'])
     return audit
diff --git a/watcher/tests/common/messaging/event/test_event_dispatcher.py b/watcher/tests/common/messaging/event/test_event_dispatcher.py
index 16242b7be..f560b0ab1 100644
--- a/watcher/tests/common/messaging/event/test_event_dispatcher.py
+++ b/watcher/tests/common/messaging/event/test_event_dispatcher.py
@@ -59,7 +59,7 @@ class TestEventDispatcher(base.TestCase):
                                                  listener)
 
         self.event_dispatcher.dispatch_event(event)
-        listener.assert_has_calls(call(event))
+        listener.assert_has_calls(calls=[call(event)])
 
     def test_dispatch_event_to_all_listener(self):
         event = self.fake_event(Events.ACTION_PLAN)
@@ -75,6 +75,6 @@ class TestEventDispatcher(base.TestCase):
                                                  listener_trigger_audit)
 
         self.event_dispatcher.dispatch_event(event)
-        listener_all.assert_has_calls(call(event))
-        listener_action_plan.assert_has_calls(call(event))
+        listener_all.assert_has_calls(calls=[call(event)])
+        listener_action_plan.assert_has_calls(calls=[call(event)])
         listener_trigger_audit.assert_has_calls([])