Rename test_bed_name to testbed_name. (#641)

diff --git a/mobly/base_test.py b/mobly/base_test.py
index b499fc5..4f7fdbf 100644
--- a/mobly/base_test.py
+++ b/mobly/base_test.py
@@ -73,7 +73,9 @@
             currently being executed.
         log_path: string, specifies the root directory for all logs written
             by a test run.
-        test_bed_name: string, the name of the test bed used by a test run.
+        test_bed_name: [Deprecated, use 'testbed_name' instead]
+            string, the name of the test bed used by a test run.
+        testbed_name: string, the name of the test bed used by a test run.
         user_params: dict, custom parameters from user, to be consumed by
             the test logic.
     """
@@ -100,7 +102,9 @@
             self.TAG = self._class_name
         # Set params.
         self.log_path = configs.log_path
+        # Deprecated, use 'testbed_name'
         self.test_bed_name = configs.test_bed_name
+        self.testbed_name = configs.testbed_name
         self.user_params = configs.user_params
         self.results = records.TestResult()
         self.summary_writer = configs.summary_writer
diff --git a/mobly/config_parser.py b/mobly/config_parser.py
index afb2449..eb8920a 100644
--- a/mobly/config_parser.py
+++ b/mobly/config_parser.py
@@ -128,7 +128,7 @@
     test_configs = []
     for original_bed_config in configs[keys.Config.key_testbed.value]:
         test_run_config = TestRunConfig()
-        test_run_config.test_bed_name = original_bed_config[
+        test_run_config.testbed_name = original_bed_config[
             keys.Config.key_testbed_name.value]
         test_run_config.log_path = log_path
         test_run_config.controller_configs = original_bed_config.get(
@@ -162,7 +162,9 @@
     Attributes:
         log_path: string, specifies the root directory for all logs written by
             a test run.
-        test_bed_name: string, the name of the test bed used by a test run.
+        test_bed_name: [Deprecated, use 'testbed_name' instead]
+            string, the name of the test bed used by a test run.
+        testbed_name: string, the name of the test bed used by a test run.
         controller_configs: dict, configs used for instantiating controller
             objects.
         user_params: dict, all the parameters to be consumed by the test logic.
@@ -175,7 +177,9 @@
 
     def __init__(self):
         self.log_path = None
+        # Deprecated, use 'testbed_name'
         self.test_bed_name = None
+        self.testbed_name = None
         self.controller_configs = None
         self.user_params = None
         self.summary_writer = None
diff --git a/mobly/suite_runner.py b/mobly/suite_runner.py
index 4da19e5..83dca42 100644
--- a/mobly/suite_runner.py
+++ b/mobly/suite_runner.py
@@ -89,7 +89,7 @@
     # Execute the suite
     ok = True
     for config in test_configs:
-        runner = test_runner.TestRunner(config.log_path, config.test_bed_name)
+        runner = test_runner.TestRunner(config.log_path, config.testbed_name)
         with runner.mobly_logger():
             for (test_class, tests) in selected_tests.items():
                 runner.add_test_class(config, test_class, tests)
@@ -100,7 +100,7 @@
                 pass
             except:
                 logging.exception('Exception when executing %s.',
-                                  config.test_bed_name)
+                                  config.testbed_name)
                 ok = False
     if not ok:
         sys.exit(1)
diff --git a/mobly/test_runner.py b/mobly/test_runner.py
index 4dabfb2..269a6e4 100644
--- a/mobly/test_runner.py
+++ b/mobly/test_runner.py
@@ -74,7 +74,7 @@
     ok = True
     for config in test_configs:
         runner = TestRunner(log_dir=config.log_path,
-                            test_bed_name=config.test_bed_name)
+                            testbed_name=config.testbed_name)
         with runner.mobly_logger():
             runner.add_test_class(config, test_class, tests)
             try:
@@ -84,7 +84,7 @@
                 pass
             except:
                 logging.exception('Exception when executing %s.',
-                                  config.test_bed_name)
+                                  config.testbed_name)
                 ok = False
     if not ok:
         sys.exit(1)
@@ -203,15 +203,15 @@
             self.test_class_name_suffix = test_class_name_suffix
             self.tests = tests
 
-    def __init__(self, log_dir, test_bed_name):
+    def __init__(self, log_dir, testbed_name):
         """Constructor for TestRunner.
 
         Args:
             log_dir: string, root folder where to write logs
-            test_bed_name: string, name of the testbed to run tests on
+            testbed_name: string, name of the testbed to run tests on
         """
         self._log_dir = log_dir
-        self._test_bed_name = test_bed_name
+        self._testbed_name = testbed_name
 
         self.results = records.TestResult()
         self._test_run_infos = []
@@ -223,7 +223,7 @@
     def _update_log_path(self):
         """Updates the logging values with the current timestamp."""
         self._start_time = logger.get_log_file_timestamp()
-        self._log_path = os.path.join(self._log_dir, self._test_bed_name,
+        self._log_path = os.path.join(self._log_dir, self._testbed_name,
                                       self._start_time)
 
     @contextlib.contextmanager
@@ -240,7 +240,7 @@
         """
         self._update_log_path()
         logger.setup_test_logger(self._log_path,
-                                 self._test_bed_name,
+                                 self._testbed_name,
                                  alias=alias)
         try:
             yield self._log_path
@@ -261,7 +261,7 @@
                 executed with different parameters in a suite.
 
         Raises:
-            Error: if the provided config has a log_path or test_bed_name which
+            Error: if the provided config has a log_path or testbed_name which
                 differs from the arguments provided to this TestRunner's
                 constructor.
         """
@@ -270,11 +270,11 @@
                 'TestRunner\'s log folder is "%s", but a test config with a '
                 'different log folder ("%s") was added.' %
                 (self._log_dir, config.log_path))
-        if self._test_bed_name != config.test_bed_name:
+        if self._testbed_name != config.testbed_name:
             raise Error(
                 'TestRunner\'s test bed is "%s", but a test config with a '
                 'different test bed ("%s") was added.' %
-                (self._test_bed_name, config.test_bed_name))
+                (self._testbed_name, config.testbed_name))
         self._test_run_infos.append(
             TestRunner._TestRunInfo(config=config,
                                     test_class=test_class,
@@ -342,6 +342,6 @@
                                 records.TestSummaryEntryType.SUMMARY)
             # Stop and show summary.
             msg = '\nSummary for test run %s@%s: %s\n' % (
-                self._test_bed_name, self._start_time,
+                self._testbed_name, self._start_time,
                 self.results.summary_str())
             logging.info(msg.strip())
diff --git a/tests/mobly/output_test.py b/tests/mobly/output_test.py
index 6762684..28a9808 100755
--- a/tests/mobly/output_test.py
+++ b/tests/mobly/output_test.py
@@ -43,7 +43,7 @@
     def setUp(self):
         self.tmp_dir = tempfile.mkdtemp()
         self.base_mock_test_config = config_parser.TestRunConfig()
-        self.base_mock_test_config.test_bed_name = 'SampleTestBed'
+        self.base_mock_test_config.testbed_name = 'SampleTestBed'
         self.base_mock_test_config.controller_configs = {}
         self.base_mock_test_config.user_params = {
             'icecream': 42,
@@ -51,7 +51,7 @@
         }
         self.base_mock_test_config.log_path = self.tmp_dir
         self.log_dir = self.base_mock_test_config.log_path
-        self.test_bed_name = self.base_mock_test_config.test_bed_name
+        self.testbed_name = self.base_mock_test_config.testbed_name
 
     def tearDown(self):
         shutil.rmtree(self.tmp_dir)
@@ -94,7 +94,7 @@
                 self.assertNotIn(item, content)
 
     def test_yields_logging_path(self):
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         with tr.mobly_logger() as log_path:
             self.assertEqual(log_path, logging.log_path)
 
@@ -104,24 +104,24 @@
         """Verifies the symlink is created and links properly."""
         mock_test_config = self.create_mock_test_config(
             self.base_mock_test_config)
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         with tr.mobly_logger():
             pass
-        symlink = os.path.join(self.log_dir, self.test_bed_name, 'latest')
+        symlink = os.path.join(self.log_dir, self.testbed_name, 'latest')
         self.assertEqual(os.readlink(symlink), logging.log_path)
 
     @unittest.skipIf(platform.system() != 'Windows',
                      'Shortcuts are specific to Windows operating systems')
     def test_shortcut(self):
         """Verifies the shortcut is created and links properly."""
-        shortcut_path = os.path.join(self.log_dir, self.test_bed_name,
+        shortcut_path = os.path.join(self.log_dir, self.testbed_name,
                                      'latest.lnk')
         shell = client.Dispatch("WScript.Shell")
         shortcut = shell.CreateShortCut(shortcut_path)
         self.assertFalse(shortcut.Targetpath)
         mock_test_config = self.create_mock_test_config(
             self.base_mock_test_config)
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         with tr.mobly_logger():
             pass
         shortcut = shell.CreateShortCut(shortcut_path)
@@ -137,10 +137,10 @@
             self, mock_create_alias):
         mock_test_config = self.create_mock_test_config(
             self.base_mock_test_config)
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         with tr.mobly_logger():
             pass
-        expected_alias_dir = os.path.join(self.log_dir, self.test_bed_name,
+        expected_alias_dir = os.path.join(self.log_dir, self.testbed_name,
                                           'latest')
         mock_create_alias.assert_called_once_with(logging.log_path,
                                                   expected_alias_dir)
@@ -150,10 +150,10 @@
                                                        mock_create_alias):
         mock_test_config = self.create_mock_test_config(
             self.base_mock_test_config)
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         with tr.mobly_logger(alias='history'):
             pass
-        expected_alias_dir = os.path.join(self.log_dir, self.test_bed_name,
+        expected_alias_dir = os.path.join(self.log_dir, self.testbed_name,
                                           'history')
         mock_create_alias.assert_called_once_with(logging.log_path,
                                                   expected_alias_dir)
@@ -163,7 +163,7 @@
             self, mock_create_alias):
         mock_test_config = self.create_mock_test_config(
             self.base_mock_test_config)
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         with tr.mobly_logger(alias=None):
             pass
         mock_create_alias.asset_not_called()
@@ -173,7 +173,7 @@
             self, mock_create_alias):
         mock_test_config = self.create_mock_test_config(
             self.base_mock_test_config)
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         with tr.mobly_logger(alias=''):
             pass
         mock_create_alias.asset_not_called()
@@ -188,7 +188,7 @@
             self.base_mock_test_config)
         info_uuid = 'e098d4ff-4e90-4e08-b369-aa84a7ef90ec'
         debug_uuid = 'c6f1474e-960a-4df8-8305-1c5b8b905eca'
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         with tr.mobly_logger():
             logging.info(info_uuid)
             logging.debug(debug_uuid)
@@ -214,7 +214,7 @@
         """
         mock_test_config = self.create_mock_test_config(
             self.base_mock_test_config)
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         tr.add_test_class(mock_test_config, integration_test.IntegrationTest)
         with tr.mobly_logger():
             tr.run()
@@ -240,7 +240,7 @@
         debug_uuid1 = '0c3ebb06-700d-496e-b015-62652da9e451'
         info_uuid2 = '484ef7db-f2dd-4b76-a126-c2f263e3808c'
         debug_uuid2 = 'd564da87-c42f-49c3-b0bf-18fa97cf0218'
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
 
         with tr.mobly_logger():
             logging.info(info_uuid1)
@@ -274,7 +274,7 @@
         """
         mock_test_config = self.create_mock_test_config(
             self.base_mock_test_config)
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         with tr.mobly_logger():
             tr.add_test_class(mock_test_config,
                               integration_test.IntegrationTest)
@@ -297,7 +297,7 @@
         teardown_class.
         """
         mock_test_config = self.base_mock_test_config.copy()
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         with tr.mobly_logger():
             tr.add_test_class(
                 mock_test_config,
diff --git a/tests/mobly/test_runner_test.py b/tests/mobly/test_runner_test.py
index 4074891..fafdbe1 100755
--- a/tests/mobly/test_runner_test.py
+++ b/tests/mobly/test_runner_test.py
@@ -42,7 +42,7 @@
     def setUp(self):
         self.tmp_dir = tempfile.mkdtemp()
         self.base_mock_test_config = config_parser.TestRunConfig()
-        self.base_mock_test_config.test_bed_name = 'SampleTestBed'
+        self.base_mock_test_config.testbed_name = 'SampleTestBed'
         self.base_mock_test_config.controller_configs = {}
         self.base_mock_test_config.user_params = {
             'icecream': 42,
@@ -50,7 +50,7 @@
         }
         self.base_mock_test_config.log_path = self.tmp_dir
         self.log_dir = self.base_mock_test_config.log_path
-        self.test_bed_name = self.base_mock_test_config.test_bed_name
+        self.testbed_name = self.base_mock_test_config.testbed_name
 
     def tearDown(self):
         shutil.rmtree(self.tmp_dir)
@@ -78,7 +78,7 @@
             'magic': 'Magic2'
         }]
         mock_test_config.controller_configs[mock_ctrlr_config_name] = my_config
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         with tr.mobly_logger():
             tr.add_test_class(mock_test_config,
                               integration_test.IntegrationTest)
@@ -129,7 +129,7 @@
             'magic': 'Magic2'
         }]
         mock_test_config.controller_configs[mock_ctrlr_config_name] = my_config
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         with tr.mobly_logger():
             tr.add_test_class(mock_test_config,
                               integration_test.IntegrationTest)
@@ -150,7 +150,7 @@
                          records.TestSummaryEntryType.SUMMARY.value)
 
     def test_run(self):
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         self.base_mock_test_config.controller_configs[
             mock_controller.MOBLY_CONTROLLER_CONFIG_NAME] = '*'
         with tr.mobly_logger():
@@ -166,7 +166,7 @@
         self.assertEqual(record.test_class, 'IntegrationTest')
 
     def test_run_without_mobly_logger_context(self):
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         self.base_mock_test_config.controller_configs[
             mock_controller.MOBLY_CONTROLLER_CONFIG_NAME] = '*'
         tr.add_test_class(self.base_mock_test_config,
@@ -209,7 +209,7 @@
         mock_test_config.controller_configs['AndroidDevice'] = [{
             'serial': '1'
         }]
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         with tr.mobly_logger():
             tr.add_test_class(mock_test_config,
                               integration2_test.Integration2Test)
@@ -238,7 +238,7 @@
             }]
         config2 = config1.copy()
         config2.user_params['icecream'] = 10
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         with tr.mobly_logger():
             tr.add_test_class(config1,
                               integration_test.IntegrationTest,
@@ -261,7 +261,7 @@
 
     def test_run_with_abort_all(self):
         mock_test_config = self.base_mock_test_config.copy()
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         with tr.mobly_logger():
             tr.add_test_class(mock_test_config,
                               integration3_test.Integration3Test)
@@ -274,7 +274,7 @@
         self.assertEqual(results['Failed'], 0)
 
     def test_add_test_class_mismatched_log_path(self):
-        tr = test_runner.TestRunner('/different/log/dir', self.test_bed_name)
+        tr = test_runner.TestRunner('/different/log/dir', self.testbed_name)
         with self.assertRaisesRegex(
                 test_runner.Error,
                 'TestRunner\'s log folder is "/different/log/dir", but a test '
@@ -283,18 +283,18 @@
             tr.add_test_class(self.base_mock_test_config,
                               integration_test.IntegrationTest)
 
-    def test_add_test_class_mismatched_test_bed_name(self):
+    def test_add_test_class_mismatched_testbed_name(self):
         tr = test_runner.TestRunner(self.log_dir, 'different_test_bed')
         with self.assertRaisesRegex(
                 test_runner.Error,
                 'TestRunner\'s test bed is "different_test_bed", but a test '
                 r'config with a different test bed \("%s"\) was added.' %
-                self.test_bed_name):
+                self.testbed_name):
             tr.add_test_class(self.base_mock_test_config,
                               integration_test.IntegrationTest)
 
     def test_run_no_tests(self):
-        tr = test_runner.TestRunner(self.log_dir, self.test_bed_name)
+        tr = test_runner.TestRunner(self.log_dir, self.testbed_name)
         with self.assertRaisesRegex(test_runner.Error, 'No tests to execute.'):
             tr.run()
 
diff --git a/tests/mobly/test_suite_test.py b/tests/mobly/test_suite_test.py
index 183042d..752cb03 100755
--- a/tests/mobly/test_suite_test.py
+++ b/tests/mobly/test_suite_test.py
@@ -43,7 +43,7 @@
         self.mock_test_cls_configs.user_params = {"some_param": "hahaha"}
         self.mock_test_cls_configs.reporter = mock.MagicMock()
         self.base_mock_test_config = config_parser.TestRunConfig()
-        self.base_mock_test_config.test_bed_name = 'SampleTestBed'
+        self.base_mock_test_config.testbed_name = 'SampleTestBed'
         self.base_mock_test_config.controller_configs = {}
         self.base_mock_test_config.user_params = {
             'icecream': 42,
@@ -67,7 +67,7 @@
                 self.controller2 = cls2.register_controller(mock_controller)[0]
 
         tr = test_runner.TestRunner(self.tmp_dir,
-                                    test_run_config.test_bed_name)
+                                    test_run_config.testbed_name)
         with tr.mobly_logger():
             tr.add_test_class(test_run_config, FooTest)
             tr.add_test_class(test_run_config, BarTest)