text: """Unit tests for resmoke_proxy.py"""
  import unittest
  from unittest.mock import MagicMock
  
  from buildscripts.task_generation import resmoke_proxy as under_test
  
  # pylint: disable=missing-docstring,invalid-name,unused-argument,no-self-use,protected-access
  
  
  class TestResmokeProxy(unittest.TestCase):
      def test_list_tests_can_handle_strings_and_lists(self):
          mock_suite = MagicMock(
              tests=["test0", "test1", ["test2a", "tests2b", "test2c"], "test3", ["test4a"]])
  
          resmoke_proxy = under_test.ResmokeProxyService()
          resmoke_proxy._suite_config = MagicMock()
          resmoke_proxy._suite_config.get_suite.return_value = mock_suite
  
          test_list = resmoke_proxy.list_tests("some suite")
  
          self.assertEqual(len(test_list), 7)
  
  
  class UpdateSuiteConfigTest(unittest.TestCase):
      def test_roots_are_updated(self):
          config = {"selector": {}}
  
          updated_config = under_test.update_suite_config(config, "root value")
          self.assertEqual("root value", updated_config["selector"]["roots"])
  
      def test_excluded_files_not_included_if_not_specified(self):
          config = {"selector": {"excluded_files": "files to exclude"}}
  
          updated_config = under_test.update_suite_config(config, excludes=None)
          self.assertNotIn("exclude_files", updated_config["selector"])
  
      def test_excluded_files_added_to_misc(self):
          config = {"selector": {}}
  
          updated_config = under_test.update_suite_config(config, excludes="files to exclude")
          self.assertEqual("files to exclude", updated_config["selector"]["exclude_files"])
  
      def test_excluded_files_extended_in_misc(self):
          config = {"selector": {"exclude_files": ["file 0", "file 1"]}}
  
          updated_config = under_test.update_suite_config(config, excludes=["file 2", "file 3"])
          self.assertEqual(4, len(updated_config["selector"]["exclude_files"]))
          for exclude in ["file 0", "file 1", "file 2", "file 3"]:
              self.assertIn(exclude, updated_config["selector"]["exclude_files"])
  