Repository: ambari
Updated Branches:
  refs/heads/branch-windows-dev e51e6f1fd -> e3277f9f4


AMBARI-8032. ambari-server unit test failures: testDBConnectionCheck failure. 
(Florian Barca via yusaku)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/e3277f9f
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/e3277f9f
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/e3277f9f

Branch: refs/heads/branch-windows-dev
Commit: e3277f9f41147a0eccfd25d4c5d3381ab30925fb
Parents: e51e6f1
Author: Yusaku Sako <[email protected]>
Authored: Thu Oct 30 14:46:22 2014 -0700
Committer: Yusaku Sako <[email protected]>
Committed: Thu Oct 30 14:46:22 2014 -0700

----------------------------------------------------------------------
 ambari-server/src/test/python/TestCheckHost.py | 51 ++++++++++-----------
 1 file changed, 24 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/e3277f9f/ambari-server/src/test/python/TestCheckHost.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/TestCheckHost.py 
b/ambari-server/src/test/python/TestCheckHost.py
index d4fbeb1..e2494c6 100644
--- a/ambari-server/src/test/python/TestCheckHost.py
+++ b/ambari-server/src/test/python/TestCheckHost.py
@@ -22,6 +22,8 @@ from stacks.utils.RMFTestCase import *
 import json
 import os
 import socket
+import subprocess
+from ambari_commons import inet_utils
 from resource_management import Script,ConfigDictionary
 from mock.mock import patch
 from mock.mock import MagicMock
@@ -62,12 +64,12 @@ class TestCheckHost(TestCase):
 
   @patch.object(Script, 'get_config')
   @patch.object(Script, 'get_tmp_dir')
-  @patch("check_host.Execute")
+  @patch("check_host.download_file")
   @patch("resource_management.libraries.script.Script.put_structured_out")
   @patch("subprocess.Popen")
   @patch("check_host.format")
   @patch("os.path.isfile")
-  def testDBConnectionCheck(self, isfile_mock, format_mock, popenMock, 
structured_out_mock, execute_mock, get_tmp_dir_mock, mock_config):
+  def testDBConnectionCheck(self, isfile_mock, format_mock, popenMock, 
structured_out_mock, download_file_mock, get_tmp_dir_mock, mock_config):
     # test, download DBConnectionVerification.jar failed
     mock_config.return_value = {"commandParams" : {"check_execute_list" : 
"db_connection_check",
                                                    "java_home" : 
"test_java_home",
@@ -77,9 +79,10 @@ class TestCheckHost(TestCase):
                                                    "db_connection_url" : 
"test_db_connection_url",
                                                    "user_name" : 
"test_user_name",
                                                    "user_passwd" : 
"test_user_passwd",
-                                                   "jdk_name" : 
"test_jdk_name"}}
+                                                   "jdk_name" : 
"test_jdk_name"},
+                                "hostLevelParams": { "agentCacheDir": 
"/nonexistent_tmp" }}
     get_tmp_dir_mock.return_value = "/tmp"
-    execute_mock.side_effect = Exception("test exception")
+    download_file_mock.side_effect = Exception("test exception")
     isfile_mock.return_value = True
     checkHost = CheckHost()
     checkHost.actionexecute(None)
@@ -87,11 +90,6 @@ class TestCheckHost(TestCase):
     self.assertEquals(structured_out_mock.call_args[0][0], 
{'db_connection_check': {'message': 'Error downloading ' \
                      'DBConnectionVerification.jar from Ambari Server 
resources. Check network access to Ambari ' \
                      'Server.\ntest exception', 'exit_code': 1}})
-    
-    self.assertEquals(format_mock.call_args_list[2][0][0], "/bin/sh -c 'cd 
/usr/lib/ambari-agent/ && curl -kf " \
-                      "--retry 5 {jdk_location}{check_db_connection_jar_name} 
-o {check_db_connection_jar_name}'")
-    
-    self.assertEquals(format_mock.call_args_list[3][0][0], "[ -f 
/usr/lib/ambari-agent/{check_db_connection_jar_name}]")
 
     # test, download jdbc driver failed
     mock_config.return_value = {"commandParams" : {"check_execute_list" : 
"db_connection_check",
@@ -102,11 +100,12 @@ class TestCheckHost(TestCase):
                                                    "db_connection_url" : 
"test_db_connection_url",
                                                    "user_name" : 
"test_user_name",
                                                    "user_passwd" : 
"test_user_passwd",
-                                                   "jdk_name" : 
"test_jdk_name"}}
+                                                   "jdk_name" : 
"test_jdk_name"},
+                                "hostLevelParams": { "agentCacheDir": 
"/nonexistent_tmp" }}
     format_mock.reset_mock()
-    execute_mock.reset_mock()
+    download_file_mock.reset_mock()
     p = MagicMock()
-    execute_mock.side_effect = [p, Exception("test exception")]
+    download_file_mock.side_effect = [p, Exception("test exception")]
 
     checkHost.actionexecute(None)
 
@@ -116,24 +115,21 @@ class TestCheckHost(TestCase):
                   'Server host to make the JDBC driver available for download 
and to enable testing '
                   'the database connection.\n')
     
self.assertEquals(structured_out_mock.call_args[0][0]['db_connection_check']['exit_code'],
 1)
-    self.assertEquals(format_mock.call_args_list[4][0][0], "/bin/sh -c 'cd 
/usr/lib/ambari-agent/ && curl -kf " \
-                                                            "--retry 5 
{jdbc_url} -o {jdbc_name}'")
-    
-    self.assertEquals(format_mock.call_args_list[5][0][0], "[ -f 
/usr/lib/ambari-agent/{jdbc_name}]")
 
     # test, no connection to remote db
     mock_config.return_value = {"commandParams" : {"check_execute_list" : 
"db_connection_check",
                                                    "java_home" : 
"test_java_home",
                                                    "ambari_server_host" : 
"test_host",
                                                    "jdk_location" : 
"test_jdk_location",
-                                                   "db_name" : "postgresql",
+                                                   "db_name" : "postgres",
                                                    "db_connection_url" : 
"test_db_connection_url",
                                                    "user_name" : 
"test_user_name",
                                                    "user_passwd" : 
"test_user_passwd",
-                                                   "jdk_name" : 
"test_jdk_name"}}
+                                                   "jdk_name" : 
"test_jdk_name"},
+                                "hostLevelParams": { "agentCacheDir": 
"/nonexistent_tmp" }}
     format_mock.reset_mock()
-    execute_mock.reset_mock()
-    execute_mock.side_effect = [p, p]
+    download_file_mock.reset_mock()
+    download_file_mock.side_effect = [p, p]
     s = MagicMock()
     s.communicate.return_value = ("test message", "")
     s.returncode = 1
@@ -143,14 +139,14 @@ class TestCheckHost(TestCase):
 
     self.assertEquals(structured_out_mock.call_args[0][0], 
{'db_connection_check': {'message': 'test message',
                                                                                
     'exit_code': 1}})
-    self.assertEquals(format_mock.call_args[0][0],'{java64_home}/bin/java -cp 
/usr/lib/ambari-agent/{check_db_' \
-                                                
'connection_jar_name}:/usr/lib/ambari-agent/{jdbc_name} org.' \
-                                                
'apache.ambari.server.DBConnectionVerification \'{db_connection_url}\' ' \
-                                                '{user_name} {user_passwd!p} 
{jdbc_driver}')
+    self.assertEquals(format_mock.call_args[0][0],'{java_exec} -cp '\
+            '{check_db_connection_path}{class_path_delimiter}{jdbc_path} 
-Djava.library.path={agent_cache_dir} '\
+            'org.apache.ambari.server.DBConnectionVerification 
{db_connection_url} '\
+            '{user_name} {user_passwd!p} {jdbc_driver}')
 
     # test, db connection success
-    execute_mock.reset_mock()
-    execute_mock.side_effect = [p, p]
+    download_file_mock.reset_mock()
+    download_file_mock.side_effect = [p, p]
     s.returncode = 0
 
     checkHost.actionexecute(None)
@@ -166,7 +162,8 @@ class TestCheckHost(TestCase):
                                                    "db_connection_url" : 
"test_db_connection_url",
                                                    "user_name" : 
"test_user_name",
                                                    "user_passwd" : 
"test_user_passwd",
-                                                   "db_name" : "postgresql"}}
+                                                   "db_name" : "postgres"},
+                                "hostLevelParams": { "agentCacheDir": 
"/nonexistent_tmp" }}
 
     isfile_mock.return_value = False
     checkHost.actionexecute(None)

Reply via email to