def test_execute_does_not_swallow_tracebacks(self): with patch.dict(Commands.methods, clear=True): @CommandLineParser.command.im_func() def boom(*args, **kwargs): def subboom(): raise IndexError("Boom!") subboom() parser = CommandLineParser() parser.parse(["boom"]) try: parser.execute() except IndexError: _, _, exc_traceback = sys.exc_info() self.assertIn( "subboom()\n", traceback.format_exc(), msg="Lost some stack frames when re-raising!", ) else: self.fail("execute() should have raised an IndexError!")
def setUp(self): self.parser = CommandLineParser() self.default_dir = os.path.join("/user", get_current_username())
class CommandLineParserInternalConfigTest(unittest2.TestCase): def setUp(self): self.parser = CommandLineParser() self.default_dir = os.path.join("/user", get_current_username()) def assert_namenode_spec(self, host, port, version=None): self.assertEqual(self.parser.args.namenode, host) self.assertEqual(self.parser.args.port, port) if version: self.assertEqual(self.parser.args.version, version) def assert_namenodes_spec(self, host, port, version=None): for namenode in self.parser.namenodes: try: self.assertEqual(namenode.host, host) self.assertEqual(namenode.port, port) if version: self.assertEqual(namenode.version, version) except AssertionError: continue # There was no AssertError -> we found our NN return self.fail("NN not found in namenodes") def test_cl_config_conflicted(self): self.parser.args = MockParseArgs(dir=["hdfs://*****:*****@patch.object(snakebite.config.HDFSConfig, 'get_external_config') @patch("snakebite.commandlineparser.CommandLineParser._read_config_snakebiterc", return_value=None) def test_config_no_config(self, config_mock, read_config_mock): hadoop_home = None config_mock.return_value = [] if os.environ.get("HADOOP_HOME"): hadoop_home = os.environ["HADOOP_HOME"] del os.environ["HADOOP_HOME"] self.parser.args = MockParseArgs() with self.assertRaises(SystemExit): self.parser.read_config() if hadoop_home: os.environ["HADOOP_HOME"] = hadoop_home self.assert_namenode_spec(None, None) valid_snake_one_rc = {"namenode": "foobar", "version": 9, "port": 54310} valid_snake_ha_rc = [{"namenode": "foobar", "version": 9, "port": 54310}, {"namenode": "foobar2", "version": 9, "port": 54310}] invalid_snake_rc = "hdfs://*****:*****@patch("os.path.exists") def test_read_config_snakebiterc_one_valid(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_one_rc)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assert_namenodes_spec("foobar", 54310, 9) self.assertEquals(self.parser.args.usetrash, self.parser.configs['use_trash']) @patch("os.path.exists") def test_read_config_snakebiterc_ha_valid(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_ha_rc)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assert_namenodes_spec("foobar", 54310, 9) self.assert_namenodes_spec("foobar2", 54310, 9) self.assertEquals(self.parser.args.usetrash, self.parser.configs['use_trash']) @patch("os.path.exists") def test_read_config_snakebiterc_invalid(self, exists_mock): m = mock_open(read_data=json.dumps(self.invalid_snake_rc)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() with self.assertRaises(SystemExit): self.parser.read_config() valid_snake_noport_one_rc = {"namenode": "foobar", "version": 11} valid_snake_noport_ha_rc = [{"namenode": "foobar", "version": 100}, {"namenode": "foobar2", "version": 100}] @patch("os.path.exists") def test_read_config_snakebiterc_noport_one_valid(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_noport_one_rc)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assert_namenodes_spec("foobar", Namenode.DEFAULT_PORT, 11) self.assertEquals(self.parser.args.usetrash, self.parser.configs['use_trash']) @patch("os.path.exists") def test_read_config_snakebiterc_noport_ha_valid(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_noport_ha_rc)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assert_namenodes_spec("foobar", Namenode.DEFAULT_PORT, 100) self.assert_namenodes_spec("foobar2", Namenode.DEFAULT_PORT, 100) self.assertEquals(self.parser.args.usetrash, self.parser.configs['use_trash']) valid_snake_noport_nov_one_rc = {"namenode": "foobar"} valid_snake_noport_nov_ha_rc = [{"namenode": "foobar"}, {"namenode": "foobar2"}] @patch("os.path.exists") def test_read_config_snakebiterc_noport_nov_one_valid(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_noport_nov_one_rc)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assert_namenodes_spec("foobar", Namenode.DEFAULT_PORT, Namenode.DEFAULT_VERSION) self.assertEquals(self.parser.args.usetrash, self.parser.configs['use_trash']) @patch("os.path.exists") def test_read_config_snakebiterc_noport_nov_ha_valid(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_noport_nov_ha_rc)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assert_namenodes_spec("foobar", Namenode.DEFAULT_PORT, Namenode.DEFAULT_VERSION) self.assert_namenodes_spec("foobar2", Namenode.DEFAULT_PORT, Namenode.DEFAULT_VERSION) self.assertEquals(self.parser.args.usetrash, self.parser.configs['use_trash']) valid_snake_noport_mix_rc = [{"namenode": "foobar", "version": 100}, {"namenode": "foobar2", "port": 66}] @patch("os.path.exists") def test_read_config_snakebiterc_noport_mix_valid(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_noport_mix_rc)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assert_namenodes_spec("foobar", Namenode.DEFAULT_PORT, 100) self.assert_namenodes_spec("foobar2", 66, Namenode.DEFAULT_VERSION) self.assertEquals(self.parser.args.usetrash, self.parser.configs['use_trash']) valid_snake_one_rc_v2 = { "config_version": 2, "use_trash": False, "namenodes": [ {"host": "foobar3", "version": 9, "port": 54310} ] } valid_snake_ha_rc_v2 = { "config_version": 2, "use_trash": True, "namenodes": [ {"host": "foobar4", "version": 9, "port": 54310}, {"host": "foobar5", "version": 9, "port": 54310} ] } invalid_snake_rc_v2 = "hdfs://*****:*****@patch("os.path.exists") def test_read_config_snakebiterc_one_valid_v2(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_one_rc_v2)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assertFalse(self.parser.args.usetrash) self.assert_namenodes_spec("foobar3", 54310, 9) @patch("os.path.exists") def test_read_config_snakebiterc_ha_valid_v2(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_ha_rc_v2)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assertTrue(self.parser.args.usetrash) self.assert_namenodes_spec("foobar4", 54310, 9) self.assert_namenodes_spec("foobar5", 54310, 9) @patch("os.path.exists") def test_read_config_snakebiterc_invalid_v2(self, exists_mock): m = mock_open(read_data=json.dumps(self.invalid_snake_rc_v2)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() with self.assertRaises(SystemExit): self.parser.read_config() valid_snake_noport_one_rc_v2 = { "config_version": 2, "use_trash": False, "namenodes": [ {"host": "foobar3", "version": 9} ] } valid_snake_mix_ha_rc_v2 = { "config_version": 2, "use_trash": True, "namenodes": [ {"host": "foobar4", "version": 100}, {"host": "foobar5", "port": 54310} ] } @patch("os.path.exists") def test_read_config_snakebiterc_noport_one_valid_v2(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_noport_one_rc_v2)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assertFalse(self.parser.args.usetrash) self.assert_namenodes_spec("foobar3", Namenode.DEFAULT_PORT, 9) @patch("os.path.exists") def test_read_config_snakebiterc_mix_ha_valid_v2(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_mix_ha_rc_v2)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assertTrue(self.parser.args.usetrash) self.assert_namenodes_spec("foobar4", Namenode.DEFAULT_PORT, 100) self.assert_namenodes_spec("foobar5", 54310, Namenode.DEFAULT_VERSION) valid_user_rc_v2 = { "config_version": 2, "use_trash": True, "user": "******", "namenodes": [ {"host": "foobar4", "version": 100}, {"host": "foobar5", "port": 54310} ] } @patch("os.path.exists") def test_read_config_snakebiterc_user_valid_v2(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_user_rc_v2)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.parser.setup_client() self.assertTrue(self.parser.args.usetrash) self.assertEquals(self.parser.client.effective_user, "hdfs_user") self.assert_namenodes_spec("foobar4", Namenode.DEFAULT_PORT, 100) self.assert_namenodes_spec("foobar5", 54310, Namenode.DEFAULT_VERSION) def test_cl_default_port(self): self.parser.args = MockParseArgs(dir=["hdfs://foobar/user/rav"], single_arg="hdfs://foobar/user/rav", command="mv") self.parser.read_config() self.assert_namenode_spec("foobar", Namenode.DEFAULT_PORT) def test_cl_trash_setting_preserved_after_cl_config(self): # no snakebiterc # read config from CL self.parser.args = MockParseArgs(dir=["hdfs://*****:*****@patch("os.path.exists") def test_cl_trash_setting_preserved_after_snakebiterc_one_valid(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_one_rc)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs(usetrash=True) self.parser.read_config() self.assert_namenodes_spec("foobar", 54310, 9) self.assertTrue(self.parser.args.usetrash) @patch('os.environ.get') def test_cl_usetrash_setting_preserved_after_external_nontrash_config(self, environ_get): environ_get.return_value = False # no snakebiterc # read external config (hdfs-site, core-site) self.parser.args = MockParseArgs(dir=["/user/rav/test"], usetrash=True, command="rm") try: HDFSConfig.core_try_paths = (ConfigTest.get_config_path('ha-core-site.xml'),) HDFSConfig.hdfs_try_paths = (ConfigTest.get_config_path('ha-noport-hdfs-site.xml'),) self.parser.init() self.assertTrue(self.parser.args.usetrash) self.assertTrue(self.parser.client.use_trash) finally: self._revert_hdfs_try_paths() @patch('os.environ.get') def test_cl_skiptrash_setting_preserved_after_external_nontrash_config(self, environ_get): environ_get.return_value = False # no snakebiterc # read external config (hdfs-site, core-site) self.parser.args = MockParseArgs(dir=["/user/rav/test"], skiptrash=True, usetrash=True, command="rm") try: HDFSConfig.core_try_paths = (ConfigTest.get_config_path('ha-core-site.xml'),) HDFSConfig.hdfs_try_paths = (ConfigTest.get_config_path('ha-noport-hdfs-site.xml'),) self.parser.init() self.assertTrue(self.parser.args.skiptrash) self.assertTrue(self.parser.args.usetrash) self.assertFalse(self.parser.client.use_trash) finally: self._revert_hdfs_try_paths()
class CommandLineParserInternalConfigTest(unittest2.TestCase): def setUp(self): self.parser = CommandLineParser() self.default_dir = os.path.join("/user", get_current_username()) def assert_namenode_spec(self, host, port, version=None): self.assertEqual(self.parser.args.namenode, host) self.assertEqual(self.parser.args.port, port) if version: self.assertEqual(self.parser.args.version, version) def assert_namenodes_spec(self, host, port, version=None): for namenode in self.parser.namenodes: try: self.assertEqual(namenode.host, host) self.assertEqual(namenode.port, port) if version: self.assertEqual(namenode.version, version) except AssertionError: continue # There was no AssertError -> we found our NN return self.fail("NN not found in namenodes") def test_cl_config_conflicted(self): self.parser.args = MockParseArgs(dir=[ "hdfs://*****:*****@patch.object(snakebite.config.HDFSConfig, 'get_external_config') @patch( "snakebite.commandlineparser.CommandLineParser._read_config_snakebiterc", return_value=None) def test_config_no_config(self, config_mock, read_config_mock): hadoop_home = None config_mock.return_value = [] if os.environ.get("HADOOP_HOME"): hadoop_home = os.environ["HADOOP_HOME"] del os.environ["HADOOP_HOME"] self.parser.args = MockParseArgs() with self.assertRaises(SystemExit): self.parser.read_config() if hadoop_home: os.environ["HADOOP_HOME"] = hadoop_home self.assert_namenode_spec(None, None) valid_snake_one_rc = {"namenode": "foobar", "version": 9, "port": 54310} valid_snake_ha_rc = [{ "namenode": "foobar", "version": 9, "port": 54310 }, { "namenode": "foobar2", "version": 9, "port": 54310 }] invalid_snake_rc = "hdfs://*****:*****@patch("os.path.exists") def test_read_config_snakebiterc_one_valid(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_one_rc)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assert_namenodes_spec("foobar", 54310, 9) self.assertEqual(self.parser.args.usetrash, self.parser.configs['use_trash']) @patch("os.path.exists") def test_read_config_snakebiterc_ha_valid(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_ha_rc)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assert_namenodes_spec("foobar", 54310, 9) self.assert_namenodes_spec("foobar2", 54310, 9) self.assertEqual(self.parser.args.usetrash, self.parser.configs['use_trash']) @patch("os.path.exists") def test_read_config_snakebiterc_invalid(self, exists_mock): m = mock_open(read_data=json.dumps(self.invalid_snake_rc)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() with self.assertRaises(SystemExit): self.parser.read_config() valid_snake_noport_one_rc = {"namenode": "foobar", "version": 11} valid_snake_noport_ha_rc = [{ "namenode": "foobar", "version": 100 }, { "namenode": "foobar2", "version": 100 }] @patch("os.path.exists") def test_read_config_snakebiterc_noport_one_valid(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_noport_one_rc)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assert_namenodes_spec("foobar", Namenode.DEFAULT_PORT, 11) self.assertEqual(self.parser.args.usetrash, self.parser.configs['use_trash']) @patch("os.path.exists") def test_read_config_snakebiterc_noport_ha_valid(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_noport_ha_rc)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assert_namenodes_spec("foobar", Namenode.DEFAULT_PORT, 100) self.assert_namenodes_spec("foobar2", Namenode.DEFAULT_PORT, 100) self.assertEqual(self.parser.args.usetrash, self.parser.configs['use_trash']) valid_snake_noport_nov_one_rc = {"namenode": "foobar"} valid_snake_noport_nov_ha_rc = [{ "namenode": "foobar" }, { "namenode": "foobar2" }] @patch("os.path.exists") def test_read_config_snakebiterc_noport_nov_one_valid(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_noport_nov_one_rc)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assert_namenodes_spec("foobar", Namenode.DEFAULT_PORT, Namenode.DEFAULT_VERSION) self.assertEqual(self.parser.args.usetrash, self.parser.configs['use_trash']) @patch("os.path.exists") def test_read_config_snakebiterc_noport_nov_ha_valid(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_noport_nov_ha_rc)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assert_namenodes_spec("foobar", Namenode.DEFAULT_PORT, Namenode.DEFAULT_VERSION) self.assert_namenodes_spec("foobar2", Namenode.DEFAULT_PORT, Namenode.DEFAULT_VERSION) self.assertEqual(self.parser.args.usetrash, self.parser.configs['use_trash']) valid_snake_noport_mix_rc = [{ "namenode": "foobar", "version": 100 }, { "namenode": "foobar2", "port": 66 }] @patch("os.path.exists") def test_read_config_snakebiterc_noport_mix_valid(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_noport_mix_rc)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assert_namenodes_spec("foobar", Namenode.DEFAULT_PORT, 100) self.assert_namenodes_spec("foobar2", 66, Namenode.DEFAULT_VERSION) self.assertEqual(self.parser.args.usetrash, self.parser.configs['use_trash']) valid_snake_one_rc_v2 = { "config_version": 2, "use_trash": False, "namenodes": [{ "host": "foobar3", "version": 9, "port": 54310 }] } valid_snake_ha_rc_v2 = { "config_version": 2, "use_trash": True, "namenodes": [{ "host": "foobar4", "version": 9, "port": 54310 }, { "host": "foobar5", "version": 9, "port": 54310 }] } invalid_snake_rc_v2 = "hdfs://*****:*****@patch("os.path.exists") def test_read_config_snakebiterc_one_valid_v2(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_one_rc_v2)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assertFalse(self.parser.args.usetrash) self.assert_namenodes_spec("foobar3", 54310, 9) @patch("os.path.exists") def test_read_config_snakebiterc_ha_valid_v2(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_ha_rc_v2)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assertTrue(self.parser.args.usetrash) self.assert_namenodes_spec("foobar4", 54310, 9) self.assert_namenodes_spec("foobar5", 54310, 9) @patch("os.path.exists") def test_read_config_snakebiterc_invalid_v2(self, exists_mock): m = mock_open(read_data=json.dumps(self.invalid_snake_rc_v2)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() with self.assertRaises(SystemExit): self.parser.read_config() valid_snake_noport_one_rc_v2 = { "config_version": 2, "use_trash": False, "namenodes": [{ "host": "foobar3", "version": 9 }] } valid_snake_mix_ha_rc_v2 = { "config_version": 2, "use_trash": True, "namenodes": [{ "host": "foobar4", "version": 100 }, { "host": "foobar5", "port": 54310 }] } @patch("os.path.exists") def test_read_config_snakebiterc_noport_one_valid_v2(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_noport_one_rc_v2)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assertFalse(self.parser.args.usetrash) self.assert_namenodes_spec("foobar3", Namenode.DEFAULT_PORT, 9) @patch("os.path.exists") def test_read_config_snakebiterc_mix_ha_valid_v2(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_mix_ha_rc_v2)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.assertTrue(self.parser.args.usetrash) self.assert_namenodes_spec("foobar4", Namenode.DEFAULT_PORT, 100) self.assert_namenodes_spec("foobar5", 54310, Namenode.DEFAULT_VERSION) valid_user_rc_v2 = { "config_version": 2, "use_trash": True, "user": "******", "namenodes": [{ "host": "foobar4", "version": 100 }, { "host": "foobar5", "port": 54310 }] } @patch("os.path.exists") def test_read_config_snakebiterc_user_valid_v2(self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_user_rc_v2)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs() self.parser.read_config() self.parser.setup_client() self.assertTrue(self.parser.args.usetrash) self.assertEqual(self.parser.client.effective_user, "hdfs_user") self.assert_namenodes_spec("foobar4", Namenode.DEFAULT_PORT, 100) self.assert_namenodes_spec("foobar5", 54310, Namenode.DEFAULT_VERSION) def test_cl_default_port(self): self.parser.args = MockParseArgs(dir=["hdfs://foobar/user/rav"], single_arg="hdfs://foobar/user/rav", command="mv") self.parser.read_config() self.assert_namenode_spec("foobar", Namenode.DEFAULT_PORT) def test_cl_trash_setting_preserved_after_cl_config(self): # no snakebiterc # read config from CL self.parser.args = MockParseArgs(dir=["hdfs://*****:*****@patch("os.path.exists") def test_cl_trash_setting_preserved_after_snakebiterc_one_valid( self, exists_mock): m = mock_open(read_data=json.dumps(self.valid_snake_one_rc)) with patch("snakebite.commandlineparser.open", m, create=True): self.parser.args = MockParseArgs(usetrash=True) self.parser.read_config() self.assert_namenodes_spec("foobar", 54310, 9) self.assertTrue(self.parser.args.usetrash) @patch('os.environ.get') def test_cl_usetrash_setting_preserved_after_external_nontrash_config( self, environ_get): environ_get.return_value = False # no snakebiterc # read external config (hdfs-site, core-site) self.parser.args = MockParseArgs(dir=["/user/rav/test"], usetrash=True, command="rm") try: HDFSConfig.core_try_paths = ( ConfigTest.get_config_path('ha-core-site.xml'), ) HDFSConfig.hdfs_try_paths = ( ConfigTest.get_config_path('ha-noport-hdfs-site.xml'), ) self.parser.init() self.assertTrue(self.parser.args.usetrash) self.assertTrue(self.parser.client.use_trash) finally: self._revert_hdfs_try_paths() @patch('os.environ.get') def test_cl_skiptrash_setting_preserved_after_external_nontrash_config( self, environ_get): environ_get.return_value = False # no snakebiterc # read external config (hdfs-site, core-site) self.parser.args = MockParseArgs(dir=["/user/rav/test"], skiptrash=True, usetrash=True, command="rm") try: HDFSConfig.core_try_paths = ( ConfigTest.get_config_path('ha-core-site.xml'), ) HDFSConfig.hdfs_try_paths = ( ConfigTest.get_config_path('ha-noport-hdfs-site.xml'), ) self.parser.init() self.assertTrue(self.parser.args.skiptrash) self.assertTrue(self.parser.args.usetrash) self.assertFalse(self.parser.client.use_trash) finally: self._revert_hdfs_try_paths() @patch('os.environ.get') def test_use_datanode_hostname(self, environ_get): environ_get.return_value = False # no snakebiterc # read external config (hdfs-site, core-site) self.parser.args = MockParseArgs() try: HDFSConfig.core_try_paths = ( ConfigTest.get_config_path('ha-core-site.xml'), ) HDFSConfig.hdfs_try_paths = (ConfigTest.get_config_path( 'use-datanode-hostname-hdfs-site.xml'), ) self.parser.init() self.assertTrue(self.parser.client.use_datanode_hostname) finally: self._revert_hdfs_try_paths()
def setUp(self): self.parser = CommandLineParser() self.default_dir = os.path.join("/user", pwd.getpwuid(os.getuid())[0])