You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ao...@apache.org on 2014/12/19 18:59:02 UTC

ambari git commit: AMBARI-8827. Failure in pyhton unit tests for ambari-server (aonishuk)

Repository: ambari
Updated Branches:
  refs/heads/trunk 6734ea3de -> 405edb289


AMBARI-8827. Failure in pyhton unit tests for ambari-server (aonishuk)


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

Branch: refs/heads/trunk
Commit: 405edb28951fce001cfedae92e119b0acfcada68
Parents: 6734ea3
Author: Andrew Onishuk <ao...@hortonworks.com>
Authored: Fri Dec 19 19:58:52 2014 +0200
Committer: Andrew Onishuk <ao...@hortonworks.com>
Committed: Fri Dec 19 19:58:52 2014 +0200

----------------------------------------------------------------------
 .../test/python/ambari_agent/TestActionQueue.py |  4 +-
 .../test/python/ambari_agent/TestHostInfo.py    |  5 +-
 .../src/main/python/ambari_commons/os_check.py  | 75 ++++++++++----------
 ambari-server/src/test/python/TestOSCheck.py    | 18 ++---
 4 files changed, 50 insertions(+), 52 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/405edb28/ambari-agent/src/test/python/ambari_agent/TestActionQueue.py
----------------------------------------------------------------------
diff --git a/ambari-agent/src/test/python/ambari_agent/TestActionQueue.py b/ambari-agent/src/test/python/ambari_agent/TestActionQueue.py
index 9aeb024..c8d90ab 100644
--- a/ambari-agent/src/test/python/ambari_agent/TestActionQueue.py
+++ b/ambari-agent/src/test/python/ambari_agent/TestActionQueue.py
@@ -36,7 +36,7 @@ from ambari_agent.PythonExecutor import PythonExecutor
 from ambari_agent.CommandStatusDict import CommandStatusDict
 from ambari_agent.ActualConfigHandler import ActualConfigHandler
 from FileCache import FileCache
-import ambari_commons.os_check
+from ambari_commons import OSCheck
 
 class TestActionQueue(TestCase):
   def setUp(self):
@@ -275,7 +275,7 @@ class TestActionQueue(TestCase):
     actionQueue.process_command(execution_command)
     self.assertTrue(print_exc_mock.called)
 
-  @patch.object(ambari_commons.os_check,"os_distribution", new=lambda: ('Suse','11','Final'))
+  @patch.object(OSCheck, "os_distribution", new = MagicMock(return_value = ('Suse','11','Final')))
   @patch("__builtin__.open")
   @patch.object(ActionQueue, "status_update_callback")
   def test_execute_command(self, status_update_callback_mock, open_mock):

http://git-wip-us.apache.org/repos/asf/ambari/blob/405edb28/ambari-agent/src/test/python/ambari_agent/TestHostInfo.py
----------------------------------------------------------------------
diff --git a/ambari-agent/src/test/python/ambari_agent/TestHostInfo.py b/ambari-agent/src/test/python/ambari_agent/TestHostInfo.py
index a5f085b..a7f3435 100644
--- a/ambari-agent/src/test/python/ambari_agent/TestHostInfo.py
+++ b/ambari-agent/src/test/python/ambari_agent/TestHostInfo.py
@@ -40,6 +40,7 @@ with patch("platform.linux_distribution", return_value = ('redhat','11','Final')
   import ambari_commons
 
 @patch.object(System, "os_family", new = 'redhat')
+@patch.object(OSCheck, "os_distribution", new = MagicMock(return_value = ('redhat','11','Final')))
 class TestHostInfo(TestCase):
 
   @patch.object(OSCheck, 'get_os_family')
@@ -219,7 +220,6 @@ class TestHostInfo(TestCase):
     for item in ['/etc/conf/a1', '/var/lib/a1', '/etc/conf/b1', '/var/lib/b1']:
       self.assertTrue(item in names)
 
-  @patch("ambari_commons.os_check.os_distribution", new=MagicMock(return_value=('redhat','11','Final')))
   @patch('os.path.exists')
   @patch('__builtin__.open')
   def test_checkUsers(self, builtins_open_mock, path_mock):
@@ -416,7 +416,6 @@ class TestHostInfo(TestCase):
     result = hostInfo.hadoopVarLogCount()
     self.assertEquals(result, 0)
 
-  @patch("ambari_commons.os_check.os_distribution", new=MagicMock(return_value=('redhat','11','Final')))
   @patch("os.listdir", create=True, autospec=True)
   @patch("__builtin__.open", create=True, autospec=True)
   @patch("pwd.getpwuid", create=True, autospec=True)
@@ -499,7 +498,6 @@ class TestHostInfo(TestCase):
     self.assertEquals(result[0]['name'], 'service1')
     self.assertTrue(len(result[0]['desc']) > 0)
 
-  @patch("ambari_commons.os_check.os_distribution", new=MagicMock(return_value=('redhat','11','Final')))
   @patch("os.path.exists")
   @patch("os.listdir", create=True, autospec=True)
   @patch("os.path.islink")
@@ -567,7 +565,6 @@ class TestHostInfo(TestCase):
     run_os_command_mock.return_value = 3, "", ""
     self.assertFalse(Firewall().getFirewallObject().check_iptables())
 
-  @patch("ambari_commons.os_check.os_distribution", new=MagicMock(return_value=('redhat','11','Final')))
   @patch("os.path.isfile")
   @patch('__builtin__.open')
   def test_transparent_huge_page(self, open_mock, os_path_isfile_mock):

http://git-wip-us.apache.org/repos/asf/ambari/blob/405edb28/ambari-common/src/main/python/ambari_commons/os_check.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/ambari_commons/os_check.py b/ambari-common/src/main/python/ambari_commons/os_check.py
index 503f933..39d8202 100644
--- a/ambari-common/src/main/python/ambari_commons/os_check.py
+++ b/ambari-common/src/main/python/ambari_commons/os_check.py
@@ -70,41 +70,6 @@ VER_NT_WORKSTATION = 1
 VER_NT_DOMAIN_CONTROLLER = 2
 VER_NT_SERVER = 3
 
-
-def os_distribution():
-  if platform.system() == SYSTEM_WINDOWS:
-    # windows distribution
-    major, minor, build, code = _get_windows_version()
-    if code in (VER_NT_DOMAIN_CONTROLLER, VER_NT_SERVER):
-      # we are on server os
-      release = None
-      if major == 6:
-        if minor == 0:
-          release = REL_2008
-        elif minor == 1:
-          release = REL_2008R2
-        elif minor == 2:
-          release = REL_2012
-        elif minor == 3:
-          release = REL_2012R2
-      distribution = (release, "{0}.{1}".format(major,minor),"WindowsServer")
-    else:
-      # we are on unsupported desktop os
-      distribution = ("", "","")
-  else:
-    # linux distribution
-    PYTHON_VER = sys.version_info[0] * 10 + sys.version_info[1]
-
-    if PYTHON_VER < 26:
-      distribution = platform.dist()
-    elif os.path.exists('/etc/redhat-release'):
-      distribution = platform.dist()
-    else:
-      distribution = platform.linux_distribution()
-
-  return distribution
-
-
 class OS_CONST_TYPE(type):
 
   # Declare here os type mapping
@@ -157,6 +122,40 @@ class OSConst:
 class OSCheck:
 
   @staticmethod
+  def os_distribution():
+    if platform.system() == SYSTEM_WINDOWS:
+      # windows distribution
+      major, minor, build, code = _get_windows_version()
+      if code in (VER_NT_DOMAIN_CONTROLLER, VER_NT_SERVER):
+        # we are on server os
+        release = None
+        if major == 6:
+          if minor == 0:
+            release = REL_2008
+          elif minor == 1:
+            release = REL_2008R2
+          elif minor == 2:
+            release = REL_2012
+          elif minor == 3:
+            release = REL_2012R2
+        distribution = (release, "{0}.{1}".format(major,minor),"WindowsServer")
+      else:
+        # we are on unsupported desktop os
+        distribution = ("", "","")
+    else:
+      # linux distribution
+      PYTHON_VER = sys.version_info[0] * 10 + sys.version_info[1]
+
+      if PYTHON_VER < 26:
+        distribution = platform.dist()
+      elif os.path.exists('/etc/redhat-release'):
+        distribution = platform.dist()
+      else:
+        distribution = platform.linux_distribution()
+    
+    return distribution
+
+  @staticmethod
   def get_os_type():
     """
     Return values:
@@ -168,7 +167,7 @@ class OSCheck:
     """
     # Read content from /etc/*-release file
     # Full release name
-    dist = os_distribution()
+    dist = OSCheck.os_distribution()
     operatingSystem = dist[0].lower()
 
     # special cases
@@ -209,7 +208,7 @@ class OSCheck:
     """
     # Read content from /etc/*-release file
     # Full release name
-    dist = os_distribution()
+    dist = OSCheck.os_distribution()
     dist = dist[1]
 
     if dist:
@@ -233,7 +232,7 @@ class OSCheck:
 
     In case cannot detect raises exception.
     """
-    dist = os_distribution()
+    dist = OSCheck.os_distribution()
     dist = dist[2].lower()
 
     if dist:

http://git-wip-us.apache.org/repos/asf/ambari/blob/405edb28/ambari-server/src/test/python/TestOSCheck.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/TestOSCheck.py b/ambari-server/src/test/python/TestOSCheck.py
index 1f60964..026f747 100644
--- a/ambari-server/src/test/python/TestOSCheck.py
+++ b/ambari-server/src/test/python/TestOSCheck.py
@@ -26,6 +26,7 @@ import tempfile
 import sys
 from unittest import TestCase
 from mock.mock import patch
+from mock.mock import MagicMock
 
 from ambari_commons import OSCheck
 import os_check_type
@@ -33,12 +34,13 @@ import os_check_type
 utils = __import__('ambari_server.utils').utils
 # We have to use this import HACK because the filename contains a dash
 with patch("platform.linux_distribution", return_value = ('Suse','11','Final')):
-  with patch.object(utils, "get_postgre_hba_dir"):
-    ambari_server = __import__('ambari-server')
+  with patch.object(OSCheck, "os_distribution", return_value = ('Suse','11','Final')):
+    with patch.object(utils, "get_postgre_hba_dir"):
+      ambari_server = __import__('ambari-server')
 
 
 class TestOSCheck(TestCase):
-  @patch("platform.linux_distribution")
+  @patch.object(OSCheck, "os_distribution")
   @patch("os.path.exists")
   def test_get_os_type(self, mock_exists, mock_linux_distribution):
 
@@ -87,7 +89,7 @@ class TestOSCheck(TestCase):
     result = OSCheck.get_os_type()
     self.assertEquals(result, 'redhat')
 
-  @patch("platform.linux_distribution")
+  @patch.object(OSCheck, "os_distribution")
   @patch("os.path.exists")
   def test_get_os_family(self, mock_exists, mock_linux_distribution):
 
@@ -131,7 +133,7 @@ class TestOSCheck(TestCase):
       self.assertEquals("Cannot detect os type. Exiting...", str(e))
       pass
 
-  @patch("platform.linux_distribution")
+  @patch.object(OSCheck, "os_distribution")
   def test_get_os_version(self, mock_linux_distribution):
 
     # 1 - Any system
@@ -149,7 +151,7 @@ class TestOSCheck(TestCase):
       self.assertEquals("Cannot detect os version. Exiting...", str(e))
       pass
 
-  @patch("platform.linux_distribution")
+  @patch.object(OSCheck, "os_distribution")
   def test_get_os_major_version(self, mock_linux_distribution):
 
     # 1
@@ -162,7 +164,7 @@ class TestOSCheck(TestCase):
     result = OSCheck.get_os_major_version()
     self.assertEquals(result, '11')
 
-  @patch("platform.linux_distribution")
+  @patch.object(OSCheck, "os_distribution")
   def test_get_os_release_name(self, mock_linux_distribution):
 
     # 1 - Any system
@@ -226,7 +228,7 @@ class TestOSCheck(TestCase):
     result = ambari_server.update_ambari_properties()
     self.assertEquals(result, 0)
 
-  @patch("platform.linux_distribution")
+  @patch.object(OSCheck, "os_distribution")
   def test_os_type_check(self, mock_linux_distribution):
 
     # 1 - server and agent os compatible