Updated Branches: refs/heads/trunk c7d94be5a -> 11de6a5c6
AMBARI-4400. unit test failures in 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/11de6a5c Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/11de6a5c Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/11de6a5c Branch: refs/heads/trunk Commit: 11de6a5c6f027564466f089c553d06a6d3f28c5d Parents: c7d94be Author: Andrew Onischuk <[email protected]> Authored: Thu Jan 23 09:55:08 2014 -0800 Committer: Andrew Onischuk <[email protected]> Committed: Thu Jan 23 09:55:08 2014 -0800 ---------------------------------------------------------------------- .../main/python/resource_management/__init__.py | 1 + .../functions/get_unique_id_and_date.py | 4 +-- .../1.3.3/HBASE/test_hbase_regionserver.py | 1 + .../stacks/1.3.3/HIVE/test_mysql_server.py | 21 +++++++------- .../stacks/2.1.1/HIVE/test_mysql_server.py | 20 ++++++------- .../src/test/python/stacks/utils/RMFTestCase.py | 30 +++++++++++++------- ambari-server/src/test/python/unitTests.py | 10 ++++--- 7 files changed, 49 insertions(+), 38 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/11de6a5c/ambari-agent/src/main/python/resource_management/__init__.py ---------------------------------------------------------------------- diff --git a/ambari-agent/src/main/python/resource_management/__init__.py b/ambari-agent/src/main/python/resource_management/__init__.py index 8def737..fee91fd 100644 --- a/ambari-agent/src/main/python/resource_management/__init__.py +++ b/ambari-agent/src/main/python/resource_management/__init__.py @@ -23,3 +23,4 @@ Ambari Agent from resource_management.libraries import * from resource_management.core import * + http://git-wip-us.apache.org/repos/asf/ambari/blob/11de6a5c/ambari-agent/src/main/python/resource_management/libraries/functions/get_unique_id_and_date.py ---------------------------------------------------------------------- diff --git a/ambari-agent/src/main/python/resource_management/libraries/functions/get_unique_id_and_date.py b/ambari-agent/src/main/python/resource_management/libraries/functions/get_unique_id_and_date.py index 8e3ce9c..cbad03b 100644 --- a/ambari-agent/src/main/python/resource_management/libraries/functions/get_unique_id_and_date.py +++ b/ambari-agent/src/main/python/resource_management/libraries/functions/get_unique_id_and_date.py @@ -22,10 +22,10 @@ Ambari Agent __all__ = ["get_unique_id_and_date"] import datetime -from resource_management.core.shell import checked_call +from resource_management.core import shell def get_unique_id_and_date(): - code, out = checked_call("hostid") + out = shell.checked_call("hostid")[1] id = out.strip() now = datetime.datetime.now() http://git-wip-us.apache.org/repos/asf/ambari/blob/11de6a5c/ambari-server/src/test/python/stacks/1.3.3/HBASE/test_hbase_regionserver.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/1.3.3/HBASE/test_hbase_regionserver.py b/ambari-server/src/test/python/stacks/1.3.3/HBASE/test_hbase_regionserver.py index 0b4492e..1ad610b 100644 --- a/ambari-server/src/test/python/stacks/1.3.3/HBASE/test_hbase_regionserver.py +++ b/ambari-server/src/test/python/stacks/1.3.3/HBASE/test_hbase_regionserver.py @@ -21,6 +21,7 @@ from mock.mock import MagicMock, patch from stacks.utils.RMFTestCase import * class TestHbaseRegionServer(RMFTestCase): + def test_configure_default(self): self.executeScript("1.3.3/services/HBASE/package/scripts/hbase_regionserver.py", classname = "HbaseRegionServer", http://git-wip-us.apache.org/repos/asf/ambari/blob/11de6a5c/ambari-server/src/test/python/stacks/1.3.3/HIVE/test_mysql_server.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/1.3.3/HIVE/test_mysql_server.py b/ambari-server/src/test/python/stacks/1.3.3/HIVE/test_mysql_server.py index 2b4a531..f79b954 100644 --- a/ambari-server/src/test/python/stacks/1.3.3/HIVE/test_mysql_server.py +++ b/ambari-server/src/test/python/stacks/1.3.3/HIVE/test_mysql_server.py @@ -21,7 +21,6 @@ from mock.mock import MagicMock, call, patch from stacks.utils.RMFTestCase import * class TestMySqlServer(RMFTestCase): - def test_configure_default(self): self.executeScript("2.1.1/services/HIVE/package/scripts/mysql_server.py", classname = "MysqlServer", @@ -38,7 +37,7 @@ class TestMySqlServer(RMFTestCase): config_file="default.json" ) - self.assertResourceCalled('Execute', 'service mysqld start', + self.assertResourceCalled('Execute', 'service mysql start', logoutput = True, path = ['/usr/local/bin/:/bin/:/sbin/'], tries = 1, @@ -52,7 +51,7 @@ class TestMySqlServer(RMFTestCase): config_file="default.json" ) - self.assertResourceCalled('Execute', 'service mysqld stop', + self.assertResourceCalled('Execute', 'service mysql stop', logoutput = True, path = ['/usr/local/bin/:/bin/:/sbin/'], tries = 1, @@ -76,7 +75,7 @@ class TestMySqlServer(RMFTestCase): config_file="secured.json" ) - self.assertResourceCalled('Execute', 'service mysqld start', + self.assertResourceCalled('Execute', 'service mysql start', logoutput = True, path = ['/usr/local/bin/:/bin/:/sbin/'], tries = 1, @@ -90,7 +89,7 @@ class TestMySqlServer(RMFTestCase): config_file="secured.json" ) - self.assertResourceCalled('Execute', 'service mysqld stop', + self.assertResourceCalled('Execute', 'service mysql stop', logoutput = True, path = ['/usr/local/bin/:/bin/:/sbin/'], tries = 1, @@ -98,7 +97,7 @@ class TestMySqlServer(RMFTestCase): self.assertNoMoreResources() def assert_configure_default(self): - self.assertResourceCalled('Execute', 'service mysqld start', + self.assertResourceCalled('Execute', 'service mysql start', logoutput = True, path = ['/usr/local/bin/:/bin/:/sbin/'], tries = 1, @@ -107,20 +106,20 @@ class TestMySqlServer(RMFTestCase): content = StaticFile('addMysqlUser.sh'), mode = 493, ) - self.assertResourceCalled('Execute', ('bash', '-x', '/tmp/addMysqlUser.sh', 'mysqld', u'hive', 'asd', u'c6402.ambari.apache.org'), + self.assertResourceCalled('Execute', ('bash', '-x', '/tmp/addMysqlUser.sh', 'mysql', u'hive', 'asd', u'c6402.ambari.apache.org'), logoutput = True, path = ['/usr/sbin:/sbin:/usr/local/bin:/bin:/usr/bin'], tries = 3, try_sleep = 5, ) - self.assertResourceCalled('Execute', 'service mysqld stop', + self.assertResourceCalled('Execute', 'service mysql stop', logoutput = True, path = ['/usr/local/bin/:/bin/:/sbin/'], tries = 1, ) def assert_configure_secured(self): - self.assertResourceCalled('Execute', 'service mysqld start', + self.assertResourceCalled('Execute', 'service mysql start', logoutput = True, path = ['/usr/local/bin/:/bin/:/sbin/'], tries = 1, @@ -129,13 +128,13 @@ class TestMySqlServer(RMFTestCase): content = StaticFile('addMysqlUser.sh'), mode = 493, ) - self.assertResourceCalled('Execute', ('bash', '-x', '/tmp/addMysqlUser.sh', 'mysqld', u'hive', 'asd', u'c6402.ambari.apache.org'), + self.assertResourceCalled('Execute', ('bash', '-x', '/tmp/addMysqlUser.sh', 'mysql', u'hive', 'asd', u'c6402.ambari.apache.org'), logoutput = True, path = ['/usr/sbin:/sbin:/usr/local/bin:/bin:/usr/bin'], tries = 3, try_sleep = 5, ) - self.assertResourceCalled('Execute', 'service mysqld stop', + self.assertResourceCalled('Execute', 'service mysql stop', logoutput = True, path = ['/usr/local/bin/:/bin/:/sbin/'], tries = 1, http://git-wip-us.apache.org/repos/asf/ambari/blob/11de6a5c/ambari-server/src/test/python/stacks/2.1.1/HIVE/test_mysql_server.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.1.1/HIVE/test_mysql_server.py b/ambari-server/src/test/python/stacks/2.1.1/HIVE/test_mysql_server.py index 2b4a531..33ba117 100644 --- a/ambari-server/src/test/python/stacks/2.1.1/HIVE/test_mysql_server.py +++ b/ambari-server/src/test/python/stacks/2.1.1/HIVE/test_mysql_server.py @@ -38,7 +38,7 @@ class TestMySqlServer(RMFTestCase): config_file="default.json" ) - self.assertResourceCalled('Execute', 'service mysqld start', + self.assertResourceCalled('Execute', 'service mysql start', logoutput = True, path = ['/usr/local/bin/:/bin/:/sbin/'], tries = 1, @@ -52,7 +52,7 @@ class TestMySqlServer(RMFTestCase): config_file="default.json" ) - self.assertResourceCalled('Execute', 'service mysqld stop', + self.assertResourceCalled('Execute', 'service mysql stop', logoutput = True, path = ['/usr/local/bin/:/bin/:/sbin/'], tries = 1, @@ -76,7 +76,7 @@ class TestMySqlServer(RMFTestCase): config_file="secured.json" ) - self.assertResourceCalled('Execute', 'service mysqld start', + self.assertResourceCalled('Execute', 'service mysql start', logoutput = True, path = ['/usr/local/bin/:/bin/:/sbin/'], tries = 1, @@ -90,7 +90,7 @@ class TestMySqlServer(RMFTestCase): config_file="secured.json" ) - self.assertResourceCalled('Execute', 'service mysqld stop', + self.assertResourceCalled('Execute', 'service mysql stop', logoutput = True, path = ['/usr/local/bin/:/bin/:/sbin/'], tries = 1, @@ -98,7 +98,7 @@ class TestMySqlServer(RMFTestCase): self.assertNoMoreResources() def assert_configure_default(self): - self.assertResourceCalled('Execute', 'service mysqld start', + self.assertResourceCalled('Execute', 'service mysql start', logoutput = True, path = ['/usr/local/bin/:/bin/:/sbin/'], tries = 1, @@ -107,20 +107,20 @@ class TestMySqlServer(RMFTestCase): content = StaticFile('addMysqlUser.sh'), mode = 493, ) - self.assertResourceCalled('Execute', ('bash', '-x', '/tmp/addMysqlUser.sh', 'mysqld', u'hive', 'asd', u'c6402.ambari.apache.org'), + self.assertResourceCalled('Execute', ('bash', '-x', '/tmp/addMysqlUser.sh', 'mysql', u'hive', 'asd', u'c6402.ambari.apache.org'), logoutput = True, path = ['/usr/sbin:/sbin:/usr/local/bin:/bin:/usr/bin'], tries = 3, try_sleep = 5, ) - self.assertResourceCalled('Execute', 'service mysqld stop', + self.assertResourceCalled('Execute', 'service mysql stop', logoutput = True, path = ['/usr/local/bin/:/bin/:/sbin/'], tries = 1, ) def assert_configure_secured(self): - self.assertResourceCalled('Execute', 'service mysqld start', + self.assertResourceCalled('Execute', 'service mysql start', logoutput = True, path = ['/usr/local/bin/:/bin/:/sbin/'], tries = 1, @@ -129,13 +129,13 @@ class TestMySqlServer(RMFTestCase): content = StaticFile('addMysqlUser.sh'), mode = 493, ) - self.assertResourceCalled('Execute', ('bash', '-x', '/tmp/addMysqlUser.sh', 'mysqld', u'hive', 'asd', u'c6402.ambari.apache.org'), + self.assertResourceCalled('Execute', ('bash', '-x', '/tmp/addMysqlUser.sh', 'mysql', u'hive', 'asd', u'c6402.ambari.apache.org'), logoutput = True, path = ['/usr/sbin:/sbin:/usr/local/bin:/bin:/usr/bin'], tries = 3, try_sleep = 5, ) - self.assertResourceCalled('Execute', 'service mysqld stop', + self.assertResourceCalled('Execute', 'service mysql stop', logoutput = True, path = ['/usr/local/bin/:/bin/:/sbin/'], tries = 1, http://git-wip-us.apache.org/repos/asf/ambari/blob/11de6a5c/ambari-server/src/test/python/stacks/utils/RMFTestCase.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/utils/RMFTestCase.py b/ambari-server/src/test/python/stacks/utils/RMFTestCase.py index ee41b17..b00d61b 100644 --- a/ambari-server/src/test/python/stacks/utils/RMFTestCase.py +++ b/ambari-server/src/test/python/stacks/utils/RMFTestCase.py @@ -29,14 +29,20 @@ from mock.mock import MagicMock, patch from resource_management.core.environment import Environment from resource_management.libraries.script.config_dictionary import ConfigDictionary from resource_management.libraries.script.script import Script +import platform + +PATH_TO_STACKS = os.path.normpath("main/resources/stacks/HDP") +PATH_TO_STACK_TESTS = os.path.normpath("test/python/stacks/") class RMFTestCase(TestCase): - def executeScript(self, path, classname=None, command=None, config_file=None): + def executeScript(self, path, classname=None, command=None, config_file=None, + shell_mock_value = (0, "OK."), os_type=('Suse','11','Final')): + norm_path = os.path.normpath(path) src_dir = RMFTestCase._getSrcFolder() - stack_version = path.split(os.sep)[0] - stacks_path = os.path.join(src_dir,"main/resources/stacks/HDP") - configs_path = os.path.join(src_dir, "test/python/stacks/", stack_version, "configs") - script_path = os.path.join(stacks_path, path) + stack_version = norm_path.split(os.sep)[0] + stacks_path = os.path.join(src_dir, PATH_TO_STACKS) + configs_path = os.path.join(src_dir, PATH_TO_STACK_TESTS, stack_version, "configs") + script_path = os.path.join(stacks_path, norm_path) config_file_path = os.path.join(configs_path, config_file) try: @@ -52,9 +58,10 @@ class RMFTestCase(TestCase): # get method to execute try: - script_module = imp.load_source(classname, script_path) + with patch.object(platform, 'linux_distribution', return_value=os_type): + script_module = imp.load_source(classname, script_path) except IOError: - raise RuntimeError("Cannot load class %s from %s",classname, path) + raise RuntimeError("Cannot load class %s from %s",classname, norm_path) script_class_inst = RMFTestCase._get_attr(script_module, classname)() method = RMFTestCase._get_attr(script_class_inst, command) @@ -65,16 +72,17 @@ class RMFTestCase(TestCase): # run with Environment(basedir, test_mode=True) as RMFTestCase.env: - with patch.object(Script, 'install_packages', return_value=MagicMock()): - with patch.object(Script, 'get_config', return_value=self.config_dict): - method(RMFTestCase.env) + with patch('resource_management.core.shell.checked_call', return_value=shell_mock_value): # we must always mock any shell calls + with patch.object(Script, 'get_config', return_value=self.config_dict): # mocking configurations + with patch.object(Script, 'install_packages'): + method(RMFTestCase.env) def getConfig(self): return self.config_dict @staticmethod def _getSrcFolder(): - return os.path.join(os.path.abspath(os.path.dirname(__file__)),"../../../../") + return os.path.join(os.path.abspath(os.path.dirname(__file__)),os.path.normpath("../../../../")) @staticmethod def _get_attr(module, attr): http://git-wip-us.apache.org/repos/asf/ambari/blob/11de6a5c/ambari-server/src/test/python/unitTests.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/unitTests.py b/ambari-server/src/test/python/unitTests.py index ee7a178..03c67fd 100644 --- a/ambari-server/src/test/python/unitTests.py +++ b/ambari-server/src/test/python/unitTests.py @@ -114,10 +114,12 @@ def main(): pwd = os.path.abspath(os.path.dirname(__file__)) ambari_server_folder = get_parent_path(pwd,'ambari-server') - ambari_agent_folder = os.path.join(ambari_server_folder,"../ambari-agent") - ambari_common_folder = os.path.join(ambari_server_folder,"../ambari-common") - sys.path.append(ambari_common_folder + "/src/main/python/jinja2") - sys.path.append(ambari_agent_folder + "/src/main/python") + ambari_agent_folder = os.path.join(ambari_server_folder,os.path.normpath("../ambari-agent")) + ambari_common_folder = os.path.join(ambari_server_folder,os.path.normpath("../ambari-common")) + # append pythonpath (for running from IDE) + sys.path.append(ambari_common_folder + os.path.normpath("/src/test/python")) + sys.path.append(ambari_common_folder + os.path.normpath("/src/main/python/jinja2")) + sys.path.append(ambari_agent_folder + os.path.normpath("/src/main/python")) stacks_folder = pwd+'/stacks' #generate test variants(path, service, stack)
