You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by mp...@apache.org on 2015/01/28 17:49:23 UTC

ambari git commit: AMBARI-9379. Failing unittest when HDP repo is present. (mpapirkovskyy)

Repository: ambari
Updated Branches:
  refs/heads/trunk 760e15583 -> 62e0a5952


AMBARI-9379. Failing unittest when HDP repo is present. (mpapirkovskyy)


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

Branch: refs/heads/trunk
Commit: 62e0a5952aadf04f17843f347a64d1ed5d7bb470
Parents: 760e155
Author: Myroslav Papirkovskyy <mp...@hortonworks.com>
Authored: Wed Jan 28 18:49:08 2015 +0200
Committer: Myroslav Papirkovskyy <mp...@hortonworks.com>
Committed: Wed Jan 28 18:49:18 2015 +0200

----------------------------------------------------------------------
 .../custom_actions/TestInstallPackages.py       | 76 +++++++++++---------
 1 file changed, 44 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/62e0a595/ambari-server/src/test/python/custom_actions/TestInstallPackages.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/custom_actions/TestInstallPackages.py b/ambari-server/src/test/python/custom_actions/TestInstallPackages.py
index 58a5f94..17ea63f 100644
--- a/ambari-server/src/test/python/custom_actions/TestInstallPackages.py
+++ b/ambari-server/src/test/python/custom_actions/TestInstallPackages.py
@@ -29,17 +29,21 @@ from mock.mock import patch, MagicMock
 from resource_management.core.base import Resource
 from resource_management.core.resources.packaging import Package
 from resource_management.core.exceptions import Fail
+from ambari_commons.os_check import OSCheck
 
 class TestInstallPackages(RMFTestCase):
 
+  @staticmethod
   def _add_packages(arg):
     arg.append(["pkg1", "1.0", "repo"])
     arg.append(["pkg2", "2.0", "repo2"])
 
+  @patch("resource_management.libraries.functions.list_ambari_managed_repos.list_ambari_managed_repos")
+  @patch("resource_management.libraries.functions.packages_analyzer.allInstalledPackages")
   @patch("resource_management.libraries.script.Script.put_structured_out")
-  @patch("resource_management.libraries.functions.packages_analyzer.allInstalledPackages",
-         new=MagicMock(side_effect = _add_packages))
-  def test_normal_flow(self, put_structured_out):
+  def test_normal_flow(self, put_structured_out_mock, allInstalledPackages_mock, list_ambari_managed_repos_mock):
+    allInstalledPackages_mock.side_effect = TestInstallPackages._add_packages
+    list_ambari_managed_repos_mock.return_value=[]
     self.executeScript("scripts/install_packages.py",
                        classname="InstallPackages",
                        command="actionexecute",
@@ -47,8 +51,8 @@ class TestInstallPackages(RMFTestCase):
                        target=RMFTestCase.TARGET_CUSTOM_ACTIONS,
                        os_type=('Redhat', '6.4', 'Final'),
     )
-    self.assertTrue(put_structured_out.called)
-    self.assertEquals(put_structured_out.call_args[0][0],
+    self.assertTrue(put_structured_out_mock.called)
+    self.assertEquals(put_structured_out_mock.call_args[0][0],
                       {'package_installation_result': 'SUCCESS',
                        'installed_repository_version': u'2.2.0.1-885',
                        'stack_id': 'HDP-2.2',
@@ -81,12 +85,15 @@ class TestInstallPackages(RMFTestCase):
     self.assertNoMoreResources()
 
 
-  @patch("resource_management.libraries.functions.list_ambari_managed_repos.list_ambari_managed_repos",
-         new=MagicMock(return_value=["HDP-UTILS-2.2.0.1-885"]))
+  @patch("resource_management.libraries.functions.list_ambari_managed_repos.list_ambari_managed_repos")
+  @patch("ambari_commons.os_check.OSCheck.is_redhat_family")
   @patch("resource_management.libraries.script.Script.put_structured_out")
-  @patch("resource_management.libraries.functions.packages_analyzer.allInstalledPackages",
-         new=MagicMock(side_effect = _add_packages))
-  def test_exclude_existing_repo(self, put_structured_out):
+  @patch("resource_management.libraries.functions.packages_analyzer.allInstalledPackages")
+  def test_exclude_existing_repo(self, allInstalledPackages_mock, put_structured_out_mock,
+                                 is_redhat_family_mock, list_ambari_managed_repos_mock):
+    allInstalledPackages_mock.side_effect = TestInstallPackages._add_packages
+    list_ambari_managed_repos_mock.return_value=["HDP-UTILS-2.2.0.1-885"]
+    is_redhat_family_mock.return_value = True
     self.executeScript("scripts/install_packages.py",
                        classname="InstallPackages",
                        command="actionexecute",
@@ -94,8 +101,8 @@ class TestInstallPackages(RMFTestCase):
                        target=RMFTestCase.TARGET_CUSTOM_ACTIONS,
                        os_type=('Redhat', '6.4', 'Final'),
     )
-    self.assertTrue(put_structured_out.called)
-    self.assertEquals(put_structured_out.call_args[0][0],
+    self.assertTrue(put_structured_out_mock.called)
+    self.assertEquals(put_structured_out_mock.call_args[0][0],
                       {'package_installation_result': 'SUCCESS',
                        'installed_repository_version': u'2.2.0.1-885',
                        'stack_id': 'HDP-2.2',
@@ -130,6 +137,7 @@ class TestInstallPackages(RMFTestCase):
 
   _install_failed = False
 
+  @staticmethod
   def _add_packages_with_fail(arg):
     arg.append(["pkg1", "1.0", "repo"])
     arg.append(["pkg2", "2.0", "repo2"])
@@ -145,12 +153,19 @@ class TestInstallPackages(RMFTestCase):
       TestInstallPackages._install_failed = True
       raise Exception()
 
+  @patch("resource_management.libraries.functions.list_ambari_managed_repos.list_ambari_managed_repos")
+  @patch("ambari_commons.os_check.OSCheck.is_redhat_family")
+  @patch("resource_management.libraries.functions.packages_analyzer.allInstalledPackages")
+  @patch("resource_management.core.resources.packaging.Package.__new__")
   @patch("resource_management.libraries.script.Script.put_structured_out")
-  @patch("resource_management.libraries.functions.packages_analyzer.allInstalledPackages",
-         new=MagicMock(side_effect = _add_packages_with_fail))
-  @patch("resource_management.core.resources.packaging.Package.__new__",
-         new=_new_with_exception)
-  def test_fail(self, put_structured_out):
+  def test_fail(self, put_structured_out_mock, Package__mock, allInstalledPackages_mock,
+                is_redhat_family_mock, list_ambari_managed_repos_mock):
+    allInstalledPackages_mock.side_effect = TestInstallPackages._add_packages_with_fail
+    is_redhat_family_mock.return_value = True
+    list_ambari_managed_repos_mock.return_value = []
+    def side_effect(retcode):
+      raise Exception()
+    Package__mock.side_effect = side_effect
     self.assertRaises(Fail, self.executeScript, "scripts/install_packages.py",
                       classname="InstallPackages",
                       command="actionexecute",
@@ -158,12 +173,9 @@ class TestInstallPackages(RMFTestCase):
                       target=RMFTestCase.TARGET_CUSTOM_ACTIONS,
                       os_type=('Redhat', '6.4', 'Final'))
 
-    self.assertTrue(put_structured_out.called)
-    self.assertEquals(put_structured_out.call_args[0][0],
-                      {'package_installation_result': 'FAIL',
-                       'installed_repository_version': u'2.2.0.1-885',
-                       'stack_id': 'HDP-2.2',
-                       'ambari_repositories': []})
+    self.assertTrue(put_structured_out_mock.called)
+    self.assertEquals(put_structured_out_mock.call_args[0][0],
+                      {'stack_id': 'HDP-2.2', 'installed_repository_version': u'2.2.0.1-885', 'ambari_repositories': [], 'package_installation_result': 'FAIL'})
     self.assertResourceCalled('Repository', 'HDP-UTILS-2.2.0.1-885',
                               base_url=u'http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos5/2.x/updates/2.2.0.0',
                               action=['create'],
@@ -182,17 +194,17 @@ class TestInstallPackages(RMFTestCase):
                               mirror_list=None,
                               append_to_file=True,
                               )
-    self.assertResourceCalled('Package', 'hadoop_2_2_*', use_repos=['base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
-    self.assertResourceCalled('Package', 'snappy', use_repos=['base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
-    self.assertResourceCalled('Package', 'hadoop_2_2_fake_pkg', action=["remove"])
-    self.assertResourceCalled('Package', 'snappy_fake_pkg', action=["remove"])
     self.assertNoMoreResources()
 
 
+  @patch("ambari_commons.os_check.OSCheck.is_suse_family")
+  @patch("resource_management.core.resources.packaging.Package")
   @patch("resource_management.libraries.script.Script.put_structured_out")
-  @patch("resource_management.libraries.functions.packages_analyzer.allInstalledPackages",
-         new=MagicMock(side_effect = _add_packages))
-  def test_format_package_name(self, put_structured_out):
+  @patch("resource_management.libraries.functions.packages_analyzer.allInstalledPackages")
+  def test_format_package_name(self,allInstalledPackages_mock, put_structured_out_mock,
+                               package_mock, is_suse_family_mock):
+    allInstalledPackages_mock = MagicMock(side_effect = TestInstallPackages._add_packages)
+    is_suse_family_mock.return_value = True
     self.executeScript("scripts/install_packages.py",
                        classname="InstallPackages",
                        command="actionexecute",
@@ -200,8 +212,8 @@ class TestInstallPackages(RMFTestCase):
                        target=RMFTestCase.TARGET_CUSTOM_ACTIONS,
                        os_type=('Suse', '11', 'Final'),
                        )
-    self.assertTrue(put_structured_out.called)
-    self.assertEquals(put_structured_out.call_args[0][0],
+    self.assertTrue(put_structured_out_mock.called)
+    self.assertEquals(put_structured_out_mock.call_args[0][0],
                       {'package_installation_result': 'SUCCESS',
                        'installed_repository_version': u'2.2.0.1-885',
                        'stack_id': 'HDP-2.2',