[Concept,02/14] buildman: Use snake_case for method names in func_test

Message ID 20260110235633.1064859-3-sjg@u-boot.org
State New
Headers
Series buildman: Clean up pylint warnings in func_test |

Commit Message

Simon Glass Jan. 10, 2026, 11:56 p.m. UTC
  From: Simon Glass <simon.glass@canonical.com>

Rename all methods to use snake_case instead of camelCase to follow
Python naming conventions. This includes helper methods like
_run_buildman, _run_control, _handle_command*, _handle_make, and all
test methods. Also add a pylint disable comment for the maxDiff
attribute which is a standard unittest name.

This fixes pylint C0103 warnings.

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
---

 tools/buildman/func_test.py | 248 ++++++++++++++++++------------------
 1 file changed, 124 insertions(+), 124 deletions(-)
  

Patch

diff --git a/tools/buildman/func_test.py b/tools/buildman/func_test.py
index 9a067ec5e7a..f917e66510b 100644
--- a/tools/buildman/func_test.py
+++ b/tools/buildman/func_test.py
@@ -190,10 +190,10 @@  class TestFunctional(unittest.TestCase):
         self._git_dir = os.path.join(self._base_dir, 'src')
         self._buildman_pathname = sys.argv[0]
         self._buildman_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
-        command.TEST_RESULT = self._HandleCommand
+        command.TEST_RESULT = self._handle_command
         bsettings.setup(None)
         bsettings.add_file(SETTINGS_DATA)
-        self.setupToolchains()
+        self.setup_toolchains()
         self._toolchains.add('arm-gcc', test=False)
         self._toolchains.add('powerpc-gcc', test=False)
         self._boards = boards.Boards()
@@ -230,15 +230,15 @@  class TestFunctional(unittest.TestCase):
         shutil.rmtree(self._base_dir)
         shutil.rmtree(self._output_dir)
 
-    def setupToolchains(self):
+    def setup_toolchains(self):
         self._toolchains = toolchain.Toolchains()
         self._toolchains.add('gcc', test=False)
 
-    def _RunBuildman(self, *args):
+    def _run_buildman(self, *args):
         all_args = [self._buildman_pathname] + list(args)
         return command.run_one(*all_args, capture=True, capture_stderr=True)
 
-    def _RunControl(self, *args, brds=False, clean_dir=False,
+    def _run_control(self, *args, brds=False, clean_dir=False,
                     test_thread_exceptions=False, get_builder=True):
         """Run buildman
 
@@ -261,16 +261,16 @@  class TestFunctional(unittest.TestCase):
         if brds == False:
             brds = self._boards
         result = control.do_buildman(
-            args, toolchains=self._toolchains, make_func=self._HandleMake,
+            args, toolchains=self._toolchains, make_func=self._handle_make,
             brds=brds, clean_dir=clean_dir,
             test_thread_exceptions=test_thread_exceptions)
         if get_builder:
             self._builder = control.TEST_BUILDER
         return result
 
-    def testFullHelp(self):
+    def test_full_help(self):
         command.TEST_RESULT = None
-        result = self._RunBuildman('-H')
+        result = self._run_buildman('-H')
         help_file = os.path.join(self._buildman_dir, 'README.rst')
         # Remove possible extraneous strings
         extra = '::::::::::::::\n' + help_file + '\n::::::::::::::\n'
@@ -279,15 +279,15 @@  class TestFunctional(unittest.TestCase):
         self.assertEqual(0, len(result.stderr))
         self.assertEqual(0, result.return_code)
 
-    def testHelp(self):
+    def test_help(self):
         command.TEST_RESULT = None
-        result = self._RunBuildman('-h')
+        result = self._run_buildman('-h')
         help_file = os.path.join(self._buildman_dir, 'README.rst')
         self.assertTrue(len(result.stdout) > 1000)
         self.assertEqual(0, len(result.stderr))
         self.assertEqual(0, result.return_code)
 
-    def testGitSetup(self):
+    def test_git_setup(self):
         """Test gitutils.Setup(), from outside the module itself"""
         command.TEST_RESULT = command.CommandResult(return_code=1)
         gitutil.setup()
@@ -297,7 +297,7 @@  class TestFunctional(unittest.TestCase):
         gitutil.setup()
         self.assertEqual(gitutil.USE_NO_DECORATE, True)
 
-    def _HandleCommandGitLog(self, args):
+    def _handle_command_git_log(self, args):
         if args[-1] == '--':
             args = args[:-1]
         if '-n0' in args:
@@ -314,7 +314,7 @@  class TestFunctional(unittest.TestCase):
         print('git log', args)
         sys.exit(1)
 
-    def _HandleCommandGitConfig(self, args):
+    def _handle_command_git_config(self, args):
         config = args[0]
         if config == 'sendemail.aliasesfile':
             return command.CommandResult(return_code=0)
@@ -330,7 +330,7 @@  class TestFunctional(unittest.TestCase):
         print('git config', args)
         sys.exit(1)
 
-    def _HandleCommandGit(self, in_args):
+    def _handle_command_git(self, in_args):
         """Handle execution of a git command
 
         This uses a hacked-up parser.
@@ -352,9 +352,9 @@  class TestFunctional(unittest.TestCase):
                 else:
                     sub_cmd = arg
         if sub_cmd == 'config':
-            return self._HandleCommandGitConfig(args)
+            return self._handle_command_git_config(args)
         elif sub_cmd == 'log':
-            return self._HandleCommandGitLog(args)
+            return self._handle_command_git_log(args)
         elif sub_cmd == 'clone':
             return command.CommandResult(return_code=0)
         elif sub_cmd == 'checkout':
@@ -366,7 +366,7 @@  class TestFunctional(unittest.TestCase):
         print('git', git_args, sub_cmd, args)
         sys.exit(1)
 
-    def _HandleCommandNm(self, args):
+    def _handle_command_nm(self, args):
         # Return nm --size-sort output with function sizes that vary between
         # calls to simulate changes between commits
         self._nm_calls = getattr(self, '_nm_calls', 0) + 1
@@ -378,7 +378,7 @@  class TestFunctional(unittest.TestCase):
 '''
         return command.CommandResult(return_code=0, stdout=stdout)
 
-    def _HandleCommandObjdump(self, args):
+    def _handle_command_objdump(self, args):
         # Return objdump -h output with .rodata section
         stdout = '''
 u-boot:     file format elf32-littlearm
@@ -391,10 +391,10 @@  Idx Name          Size      VMA       LMA       File off  Algn
 '''
         return command.CommandResult(return_code=0, stdout=stdout)
 
-    def _HandleCommandObjcopy(self, args):
+    def _handle_command_objcopy(self, args):
         return command.CommandResult(return_code=0)
 
-    def _HandleCommandSize(self, args):
+    def _handle_command_size(self, args):
         # Return size output - vary the size based on call count to simulate
         # changes between commits
         self._size_calls = getattr(self, '_size_calls', 0) + 1
@@ -408,7 +408,7 @@  Idx Name          Size      VMA       LMA       File off  Algn
 '''
         return command.CommandResult(return_code=0, stdout=stdout)
 
-    def _HandleCommandCpp(self, args):
+    def _handle_command_cpp(self, args):
         # args ['-nostdinc', '-P', '-I', '/tmp/tmp7f17xk_o/src', '-undef',
         # '-x', 'assembler-with-cpp', fname]
         fname = args[7]
@@ -424,7 +424,7 @@  Idx Name          Size      VMA       LMA       File off  Algn
                 print(line, file=buf)
         return command.CommandResult(stdout=buf.getvalue(), return_code=0)
 
-    def _HandleCommand(self, **kwargs):
+    def _handle_command(self, **kwargs):
         """Handle a command execution.
 
         The command is in kwargs['pipe-list'], as a list of pipes, each a
@@ -446,21 +446,21 @@  Idx Name          Size      VMA       LMA       File off  Algn
         args = pipe_list[0][1:]
         result = None
         if cmd == 'git':
-            result = self._HandleCommandGit(args)
+            result = self._handle_command_git(args)
         elif cmd == './scripts/show-gnu-make':
             return command.CommandResult(return_code=0, stdout='make')
         elif cmd.endswith('nm'):
-            return self._HandleCommandNm(args)
+            return self._handle_command_nm(args)
         elif cmd.endswith('objdump'):
-            return self._HandleCommandObjdump(args)
+            return self._handle_command_objdump(args)
         elif cmd.endswith('objcopy'):
-            return self._HandleCommandObjcopy(args)
+            return self._handle_command_objcopy(args)
         elif cmd.endswith( 'size'):
-            return self._HandleCommandSize(args)
+            return self._handle_command_size(args)
         elif cmd.endswith( 'cpp'):
-            return self._HandleCommandCpp(args)
+            return self._handle_command_cpp(args)
         elif cmd == 'gcc' and args[0] == '-E':
-            return self._HandleCommandCpp(args[1:])
+            return self._handle_command_cpp(args[1:])
         if not result:
             # Not handled, so abort
             print('unknown command', kwargs)
@@ -470,7 +470,7 @@  Idx Name          Size      VMA       LMA       File off  Algn
             result.stdout = len(result.stdout.splitlines())
         return result
 
-    def _HandleMake(self, commit, brd, stage, cwd, *args, **kwargs):
+    def _handle_make(self, commit, brd, stage, cwd, *args, **kwargs):
         """Handle execution of 'make'
 
         Args:
@@ -534,7 +534,7 @@  Some images are invalid'''
             return command.CommandResult(return_code=0)
 
         # Not handled, so abort
-        print('_HandleMake failure: make', stage)
+        print('_handle_make failure: make', stage)
         sys.exit(1)
 
     # Example function to print output lines
@@ -544,29 +544,29 @@  Some images are invalid'''
             print(line)
         #self.print_lines(terminal.get_print_test_lines())
 
-    def testNoBoards(self):
+    def test_no_boards(self):
         """Test that buildman aborts when there are no boards"""
         self._boards = boards.Boards()
         with self.assertRaises(SystemExit):
-            self._RunControl()
+            self._run_control()
 
-    def testCurrentSource(self):
+    def test_current_source(self):
         """Very simple test to invoke buildman on the current source"""
-        self.setupToolchains();
-        self._RunControl('-o', self._output_dir)
+        self.setup_toolchains();
+        self._run_control('-o', self._output_dir)
         lines = terminal.get_print_test_lines()
         self.assertIn('Building current source for %d boards' % len(BOARDS),
                       lines[0].text)
 
-    def testBadBranch(self):
+    def test_bad_branch(self):
         """Test that we can detect an invalid branch"""
         with self.assertRaises(ValueError):
-            self._RunControl('-b', 'badbranch')
+            self._run_control('-b', 'badbranch')
 
-    def testBadToolchain(self):
+    def test_bad_toolchain(self):
         """Test that missing toolchains are detected"""
-        self.setupToolchains();
-        ret_code = self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir)
+        self.setup_toolchains();
+        ret_code = self._run_control('-b', TEST_BRANCH, '-o', self._output_dir)
         lines = terminal.get_print_test_lines()
 
         # Buildman always builds the upstream commit as well
@@ -590,19 +590,19 @@  Some images are invalid'''
                        f"No tool chain found for arch '{brd.arch}'"])
                   fd.close()
 
-    def testToolchainErrors(self):
+    def test_toolchain_errors(self):
         """Test that toolchain errors are reported in the summary
 
         When toolchains are missing, boards cannot be built. The summary
         should report which boards were not built.
         """
-        self.setupToolchains()
+        self.setup_toolchains()
         # Build with missing toolchains - only sandbox will succeed
-        self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir)
+        self._run_control('-b', TEST_BRANCH, '-o', self._output_dir)
 
         # Now show summary - should report boards not built
         terminal.get_print_test_lines()  # Clear
-        self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir, '-s',
+        self._run_control('-b', TEST_BRANCH, '-o', self._output_dir, '-s',
                          clean_dir=False)
         lines = terminal.get_print_test_lines()
         text = '\n'.join(line.text for line in lines)
@@ -613,13 +613,13 @@  Some images are invalid'''
         self.assertIn('board1', text)
         self.assertIn('board2', text)
 
-    def testBranch(self):
+    def test_branch(self):
         """Test building a branch with all toolchains present"""
-        self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir)
+        self._run_control('-b', TEST_BRANCH, '-o', self._output_dir)
         self.assertEqual(self._builder.count, self._total_builds)
         self.assertEqual(self._builder.fail, 0)
 
-    def testCurrentSourceIde(self):
+    def test_current_source_ide(self):
         """Test building current source with IDE mode enabled
 
         This tests that:
@@ -638,7 +638,7 @@  Some images are invalid'''
         try:
             sys.stderr = captured_stderr
             terminal.get_print_test_lines()  # Clear any previous output
-            self._RunControl('-o', self._output_dir, '-I')
+            self._run_control('-o', self._output_dir, '-I')
         finally:
             sys.stderr = old_stderr
 
@@ -654,13 +654,13 @@  Some images are invalid'''
 
         # Now run with -s to show summary - output should appear again
         terminal.get_print_test_lines()  # Clear
-        self._RunControl('-o', self._output_dir, '-s', clean_dir=False)
+        self._run_control('-o', self._output_dir, '-s', clean_dir=False)
         lines = terminal.get_print_test_lines()
         self.assertEqual(len(lines), 2)
         self.assertIn('Summary of', lines[0].text)
         self.assertIn('board4', lines[1].text)
 
-    def testBranchIde(self):
+    def test_branch_ide(self):
         """Test building a branch with IDE mode and summary
 
         This tests _print_ide_output() which outputs errors to stderr during
@@ -672,7 +672,7 @@  Some images are invalid'''
 
         # Build branch normally first (writes results to disk)
         terminal.get_print_test_lines()
-        self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir)
+        self._run_control('-b', TEST_BRANCH, '-o', self._output_dir)
         self.assertEqual(self._builder.fail, 1)
 
         # Run summary with IDE mode - errors go to stderr via _print_ide_output
@@ -681,7 +681,7 @@  Some images are invalid'''
         try:
             sys.stderr = captured_stderr
             terminal.get_print_test_lines()
-            self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir, '-sI',
+            self._run_control('-b', TEST_BRANCH, '-o', self._output_dir, '-sI',
                              clean_dir=False)
         finally:
             sys.stderr = old_stderr
@@ -690,15 +690,15 @@  Some images are invalid'''
         self.assertEqual(captured_stderr.getvalue(),
                          'branch_error.c:456: error: branch failure\n')
 
-    def testBranchSummary(self):
+    def test_branch_summary(self):
         """Test building a branch and then showing a summary"""
-        self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir)
+        self._run_control('-b', TEST_BRANCH, '-o', self._output_dir)
         self.assertEqual(self._builder.count, self._total_builds)
         self.assertEqual(self._builder.fail, 0)
 
         # Now run with -s to show summary
         self._make_calls = 0
-        self._RunControl('-b', TEST_BRANCH, '-s', '-o', self._output_dir,
+        self._run_control('-b', TEST_BRANCH, '-s', '-o', self._output_dir,
                          clean_dir=False)
         # Summary should not trigger any builds
         self.assertEqual(self._make_calls, 0)
@@ -707,7 +707,7 @@  Some images are invalid'''
 
         # Now run with -S to show sizes as well
         self._make_calls = 0
-        self._RunControl('-b', TEST_BRANCH, '-sS', '-o', self._output_dir,
+        self._run_control('-b', TEST_BRANCH, '-sS', '-o', self._output_dir,
                          clean_dir=False)
         self.assertEqual(self._make_calls, 0)
         lines = terminal.get_print_test_lines()
@@ -719,7 +719,7 @@  Some images are invalid'''
 
         # Now run with -B to show bloat (function size changes)
         self._make_calls = 0
-        self._RunControl('-b', TEST_BRANCH, '-sSB', '-o', self._output_dir,
+        self._run_control('-b', TEST_BRANCH, '-sSB', '-o', self._output_dir,
                          clean_dir=False)
         self.assertEqual(self._make_calls, 0)
         lines = terminal.get_print_test_lines()
@@ -746,7 +746,7 @@  Some images are invalid'''
                 tools.write_file(cfg_fname, cfg_content.encode('utf-8'))
 
         self._make_calls = 0
-        self._RunControl('-b', TEST_BRANCH, '-sK', '-o', self._output_dir,
+        self._run_control('-b', TEST_BRANCH, '-sK', '-o', self._output_dir,
                          clean_dir=False)
         self.assertEqual(self._make_calls, 0)
         lines = terminal.get_print_test_lines()
@@ -774,7 +774,7 @@  Some images are invalid'''
                 tools.write_file(env_fname, env_content.encode('utf-8'))
 
         self._make_calls = 0
-        self._RunControl('-b', TEST_BRANCH, '-sU', '-o', self._output_dir,
+        self._run_control('-b', TEST_BRANCH, '-sU', '-o', self._output_dir,
                          clean_dir=False)
         self.assertEqual(self._make_calls, 0)
         lines = terminal.get_print_test_lines()
@@ -783,10 +783,10 @@  Some images are invalid'''
         self.assertIn('bootdelay', text)
         self.assertIn('(no errors to report)', lines[-1].text)
 
-    def testWarningsAsErrors(self):
+    def test_warnings_as_errors(self):
         """Test the -E flag adds -Werror to make arguments"""
         self._captured_make_args = []
-        self._RunControl('-o', self._output_dir, '-E')
+        self._run_control('-o', self._output_dir, '-E')
 
         # Check that at least one build had -Werror flags
         found_werror = False
@@ -798,50 +798,50 @@  Some images are invalid'''
                 break
         self.assertTrue(found_werror, 'KCFLAGS=-Werror not found in make args')
 
-    def testCount(self):
+    def test_count(self):
         """Test building a specific number of commitst"""
-        self._RunControl('-b', TEST_BRANCH, '-c2', '-o', self._output_dir)
+        self._run_control('-b', TEST_BRANCH, '-c2', '-o', self._output_dir)
         self.assertEqual(self._builder.count, 2 * len(BOARDS))
         self.assertEqual(self._builder.fail, 0)
         # Each board has a config, and then one make per commit
         self.assertEqual(self._make_calls, len(BOARDS) * (1 + 2))
 
-    def testIncremental(self):
+    def test_incremental(self):
         """Test building a branch twice - the second time should do nothing"""
-        self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir)
+        self._run_control('-b', TEST_BRANCH, '-o', self._output_dir)
 
         # Each board has a mrproper, config, and then one make per commit
         self.assertEqual(self._make_calls, len(BOARDS) * (self._commits + 1))
         self._make_calls = 0
-        self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir, clean_dir=False)
+        self._run_control('-b', TEST_BRANCH, '-o', self._output_dir, clean_dir=False)
         self.assertEqual(self._make_calls, 0)
         self.assertEqual(self._builder.count, self._total_builds)
         self.assertEqual(self._builder.fail, 0)
 
-    def testForceBuild(self):
+    def test_force_build(self):
         """The -f flag should force a rebuild"""
-        self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir)
+        self._run_control('-b', TEST_BRANCH, '-o', self._output_dir)
         self._make_calls = 0
-        self._RunControl('-b', TEST_BRANCH, '-f', '-o', self._output_dir, clean_dir=False)
+        self._run_control('-b', TEST_BRANCH, '-f', '-o', self._output_dir, clean_dir=False)
         # Each board has a config and one make per commit
         self.assertEqual(self._make_calls, len(BOARDS) * (self._commits + 1))
 
-    def testForceReconfigure(self):
+    def test_force_reconfigure(self):
         """The -f flag should force a rebuild"""
-        self._RunControl('-b', TEST_BRANCH, '-C', '-o', self._output_dir)
+        self._run_control('-b', TEST_BRANCH, '-C', '-o', self._output_dir)
         # Each commit has a config and make
         self.assertEqual(self._make_calls, len(BOARDS) * self._commits * 2)
 
-    def testMrproper(self):
+    def test_mrproper(self):
         """The -f flag should force a rebuild"""
-        self._RunControl('-b', TEST_BRANCH, '-m', '-o', self._output_dir)
+        self._run_control('-b', TEST_BRANCH, '-m', '-o', self._output_dir)
         # Each board has a mkproper, config and then one make per commit
         self.assertEqual(self._make_calls, len(BOARDS) * (self._commits + 2))
 
-    def testErrors(self):
+    def test_errors(self):
         """Test handling of build errors"""
         self._error['board2', 1] = 'fred\n'
-        self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir)
+        self._run_control('-b', TEST_BRANCH, '-o', self._output_dir)
         self.assertEqual(self._builder.count, self._total_builds)
         self.assertEqual(self._builder.fail, 1)
 
@@ -849,49 +849,49 @@  Some images are invalid'''
         # not be rebuilt
         del self._error['board2', 1]
         self._make_calls = 0
-        self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir, clean_dir=False)
+        self._run_control('-b', TEST_BRANCH, '-o', self._output_dir, clean_dir=False)
         self.assertEqual(self._builder.count, self._total_builds)
         self.assertEqual(self._make_calls, 0)
         self.assertEqual(self._builder.fail, 1)
 
         # Now use the -F flag to force rebuild of the bad commit
-        self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir, '-F', clean_dir=False)
+        self._run_control('-b', TEST_BRANCH, '-o', self._output_dir, '-F', clean_dir=False)
         self.assertEqual(self._builder.count, self._total_builds)
         self.assertEqual(self._builder.fail, 0)
         self.assertEqual(self._make_calls, 2)
 
-    def testBranchWithSlash(self):
+    def test_branch_with_slash(self):
         """Test building a branch with a '/' in the name"""
         self._test_branch = '/__dev/__testbranch'
-        self._RunControl('-b', self._test_branch, '-o', self._output_dir,
+        self._run_control('-b', self._test_branch, '-o', self._output_dir,
                          clean_dir=False)
         self.assertEqual(self._builder.count, self._total_builds)
         self.assertEqual(self._builder.fail, 0)
 
-    def testEnvironment(self):
+    def test_environment(self):
         """Test that the done and environment files are written to out-env"""
-        self._RunControl('-o', self._output_dir)
+        self._run_control('-o', self._output_dir)
         board0_dir = os.path.join(self._output_dir, 'current', 'board0')
         self.assertTrue(os.path.exists(os.path.join(board0_dir, 'done')))
         self.assertTrue(os.path.exists(os.path.join(board0_dir, 'out-env')))
 
-    def testEnvironmentUnicode(self):
+    def test_environment_unicode(self):
         """Test there are no unicode errors when the env has non-ASCII chars"""
         try:
             varname = b'buildman_test_var'
             os.environb[varname] = b'strange\x80chars'
-            self.assertEqual(0, self._RunControl('-o', self._output_dir))
+            self.assertEqual(0, self._run_control('-o', self._output_dir))
             board0_dir = os.path.join(self._output_dir, 'current', 'board0')
             self.assertTrue(os.path.exists(os.path.join(board0_dir, 'done')))
             self.assertTrue(os.path.exists(os.path.join(board0_dir, 'out-env')))
         finally:
             del os.environb[varname]
 
-    def testWorkInOutput(self):
+    def test_work_in_output(self):
         """Test the -w option which should write directly to the output dir"""
         board_list = boards.Boards()
         board_list.add_board(board.Board(*BOARDS[0]))
-        self._RunControl('-o', self._output_dir, '-w', clean_dir=False,
+        self._run_control('-o', self._output_dir, '-w', clean_dir=False,
                          brds=board_list)
         self.assertTrue(
             os.path.exists(os.path.join(self._output_dir, 'u-boot')))
@@ -900,10 +900,10 @@  Some images are invalid'''
         self.assertTrue(
             os.path.exists(os.path.join(self._output_dir, 'out-env')))
 
-    def testWorkInOutputFail(self):
+    def test_work_in_output_fail(self):
         """Test the -w option failures"""
         with self.assertRaises(SystemExit) as e:
-            self._RunControl('-o', self._output_dir, '-w', clean_dir=False)
+            self._run_control('-o', self._output_dir, '-w', clean_dir=False)
         self.assertIn("single board", str(e.exception))
         self.assertFalse(
             os.path.exists(os.path.join(self._output_dir, 'u-boot')))
@@ -911,26 +911,26 @@  Some images are invalid'''
         board_list = boards.Boards()
         board_list.add_board(board.Board(*BOARDS[0]))
         with self.assertRaises(SystemExit) as e:
-            self._RunControl('-b', self._test_branch, '-o', self._output_dir,
+            self._run_control('-b', self._test_branch, '-o', self._output_dir,
                              '-w', clean_dir=False, brds=board_list)
         self.assertIn("single commit", str(e.exception))
 
         board_list = boards.Boards()
         board_list.add_board(board.Board(*BOARDS[0]))
         with self.assertRaises(SystemExit) as e:
-            self._RunControl('-w', clean_dir=False)
+            self._run_control('-w', clean_dir=False)
         self.assertIn("specify -o", str(e.exception))
 
-    def testThreadExceptions(self):
+    def test_thread_exceptions(self):
         """Test that exceptions in threads are reported"""
         with terminal.capture() as (stdout, stderr):
-            self.assertEqual(102, self._RunControl('-o', self._output_dir,
+            self.assertEqual(102, self._run_control('-o', self._output_dir,
                                                    test_thread_exceptions=True))
         self.assertIn(
             'Thread exception (use -T0 to run without threads): test exception',
             stdout.getvalue())
 
-    def testBlobs(self):
+    def test_blobs(self):
         """Test handling of missing blobs"""
         self._missing = True
 
@@ -939,17 +939,17 @@  Some images are invalid'''
         logfile = os.path.join(board0_dir, 'log')
 
         # We expect failure when there are missing blobs
-        result = self._RunControl('board0', '-o', self._output_dir)
+        result = self._run_control('board0', '-o', self._output_dir)
         self.assertEqual(100, result)
         self.assertTrue(os.path.exists(os.path.join(board0_dir, 'done')))
         self.assertTrue(os.path.exists(errfile))
         self.assertIn(b"Filename 'fsp.bin' not found in input path",
                       tools.read_file(errfile))
 
-    def testBlobsAllowMissing(self):
+    def test_blobs_allow_missing(self):
         """Allow missing blobs - still failure but a different exit code"""
         self._missing = True
-        result = self._RunControl('board0', '-o', self._output_dir, '-M',
+        result = self._run_control('board0', '-o', self._output_dir, '-M',
                                   clean_dir=True)
         self.assertEqual(101, result)
         board0_dir = os.path.join(self._output_dir, 'current', 'board0')
@@ -957,16 +957,16 @@  Some images are invalid'''
         self.assertTrue(os.path.exists(errfile))
         self.assertIn(b'Some images are invalid', tools.read_file(errfile))
 
-    def testBlobsWarning(self):
+    def test_blobs_warning(self):
         """Allow missing blobs and ignore warnings"""
         self._missing = True
-        result = self._RunControl('board0', '-o', self._output_dir, '-MW')
+        result = self._run_control('board0', '-o', self._output_dir, '-MW')
         self.assertEqual(0, result)
         board0_dir = os.path.join(self._output_dir, 'current', 'board0')
         errfile = os.path.join(board0_dir, 'err')
         self.assertIn(b'Some images are invalid', tools.read_file(errfile))
 
-    def testBlobSettings(self):
+    def test_blob_settings(self):
         """Test with no settings"""
         self.assertEqual(False,
                          control.get_allow_missing(False, False, 1, False))
@@ -975,7 +975,7 @@  Some images are invalid'''
         self.assertEqual(False,
                          control.get_allow_missing(True, True, 1, False))
 
-    def testBlobSettingsAlways(self):
+    def test_blob_settings_always(self):
         """Test the 'always' policy"""
         bsettings.set_item('global', 'allow-missing', 'always')
         self.assertEqual(True,
@@ -983,7 +983,7 @@  Some images are invalid'''
         self.assertEqual(False,
                          control.get_allow_missing(False, True, 1, False))
 
-    def testBlobSettingsBranch(self):
+    def test_blob_settings_branch(self):
         """Test the 'branch' policy"""
         bsettings.set_item('global', 'allow-missing', 'branch')
         self.assertEqual(False,
@@ -993,7 +993,7 @@  Some images are invalid'''
         self.assertEqual(False,
                          control.get_allow_missing(False, True, 1, True))
 
-    def testBlobSettingsMultiple(self):
+    def test_blob_settings_multiple(self):
         """Test the 'multiple' policy"""
         bsettings.set_item('global', 'allow-missing', 'multiple')
         self.assertEqual(False,
@@ -1003,7 +1003,7 @@  Some images are invalid'''
         self.assertEqual(False,
                          control.get_allow_missing(False, True, 2, False))
 
-    def testBlobSettingsBranchMultiple(self):
+    def test_blob_settings_branch_multiple(self):
         """Test the 'branch multiple' policy"""
         bsettings.set_item('global', 'allow-missing', 'branch multiple')
         self.assertEqual(False,
@@ -1026,7 +1026,7 @@  Some images are invalid'''
         Returns:
             list of str: Lines returned in the out-cmd file
         """
-        self._RunControl('-o', self._output_dir, *extra_args)
+        self._run_control('-o', self._output_dir, *extra_args)
         board0_dir = os.path.join(self._output_dir, 'current', 'board0')
         self.assertTrue(os.path.exists(os.path.join(board0_dir, 'done')))
         cmd_fname = os.path.join(board0_dir, 'out-cmd')
@@ -1039,19 +1039,19 @@  Some images are invalid'''
 
         return data.splitlines(), cfg_data
 
-    def testCmdFile(self):
+    def test_cmd_file(self):
         """Test that the -cmd-out file is produced"""
         lines = self.check_command()[0]
         self.assertEqual(2, len(lines))
         self.assertRegex(lines[0], b'make O=/.*board0_defconfig')
         self.assertRegex(lines[0], b'make O=/.*-s.*')
 
-    def testNoLto(self):
+    def test_no_lto(self):
         """Test that the --no-lto flag works"""
         lines = self.check_command('-L')[0]
         self.assertIn(b'NO_LTO=1', lines[0])
 
-    def testFragments(self):
+    def test_fragments(self):
         """Test passing of configuration fragments to the make command"""
         # Single fragment passed as argument
         extra_args = ['board0', '--fragments', 'f1.config']
@@ -1066,7 +1066,7 @@  Some images are invalid'''
                          r'make O=/.*board0_defconfig\s+f1\.config\s+f2\.config',
                          'Test multiple fragments')
 
-    def testReproducible(self):
+    def test_reproducible(self):
         """Test that the -r flag works"""
         lines, cfg_data = self.check_command('-r')
         self.assertIn(b'SOURCE_DATE_EPOCH=0', lines[0])
@@ -1295,64 +1295,64 @@  endif
         self.assertEqual(2, len(params_list))
         self.assertFalse(warnings)
 
-    def testRegenBoards(self):
+    def test_regen_boards(self):
         """Test that we can regenerate the boards.cfg file"""
         outfile = os.path.join(self._output_dir, 'test-boards.cfg')
         if os.path.exists(outfile):
             os.remove(outfile)
         with terminal.capture() as (stdout, stderr):
-            result = self._RunControl('-R', outfile, brds=None,
+            result = self._run_control('-R', outfile, brds=None,
                                       get_builder=False)
         self.assertTrue(os.path.exists(outfile))
 
     def test_print_prefix(self):
         """Test that we can print the toolchain prefix"""
         with terminal.capture() as (stdout, stderr):
-            result = self._RunControl('-A', 'board0')
+            result = self._run_control('-A', 'board0')
         self.assertEqual('arm-\n', stdout.getvalue())
         self.assertEqual('', stderr.getvalue())
 
     def test_exclude_one(self):
         """Test excluding a single board from an arch"""
-        self._RunControl('arm', '-x', 'board1', '-o', self._output_dir)
+        self._run_control('arm', '-x', 'board1', '-o', self._output_dir)
         self.assertEqual(['board0'],
                          [b.target for b in self._boards.get_selected()])
 
     def test_exclude_arch(self):
         """Test excluding an arch"""
-        self._RunControl('-x', 'arm', '-o', self._output_dir)
+        self._run_control('-x', 'arm', '-o', self._output_dir)
         self.assertEqual(['board2', 'board4'],
                          [b.target for b in self._boards.get_selected()])
 
     def test_exclude_comma(self):
         """Test excluding a comma-separated list of things"""
-        self._RunControl('-x', 'arm,powerpc', '-o', self._output_dir)
+        self._run_control('-x', 'arm,powerpc', '-o', self._output_dir)
         self.assertEqual(['board4'],
                          [b.target for b in self._boards.get_selected()])
 
     def test_exclude_list(self):
         """Test excluding a list of things"""
-        self._RunControl('-x', 'board2', '-x' 'board4', '-o', self._output_dir)
+        self._run_control('-x', 'board2', '-x' 'board4', '-o', self._output_dir)
         self.assertEqual(['board0', 'board1'],
                          [b.target for b in self._boards.get_selected()])
 
     def test_single_boards(self):
         """Test building single boards"""
-        self._RunControl('--boards', 'board1', '-o', self._output_dir)
+        self._run_control('--boards', 'board1', '-o', self._output_dir)
         self.assertEqual(1, self._builder.count)
 
-        self._RunControl('--boards', 'board1', '--boards', 'board2',
+        self._run_control('--boards', 'board1', '--boards', 'board2',
                          '-o', self._output_dir)
         self.assertEqual(2, self._builder.count)
 
-        self._RunControl('--boards', 'board1,board2', '--boards', 'board4',
+        self._run_control('--boards', 'board1,board2', '--boards', 'board4',
                          '-o', self._output_dir)
         self.assertEqual(3, self._builder.count)
 
     def test_print_arch(self):
         """Test that we can print the board architecture"""
         with terminal.capture() as (stdout, stderr):
-            result = self._RunControl('--print-arch', 'board0')
+            result = self._run_control('--print-arch', 'board0')
         self.assertEqual('arm\n', stdout.getvalue())
         self.assertEqual('', stderr.getvalue())
 
@@ -1407,7 +1407,7 @@  CONFIG_SOC="fred"
             'target': 'board0'},
             ['WARNING: board0_defconfig: No TARGET_BOARD0 enabled']), res)
 
-        # check handling of #include files; see _HandleCommandCpp()
+        # check handling of #include files; see _handle_command_cpp()
         inc = os.path.join(src, 'common')
         tools.write_file(inc, b'CONFIG_TARGET_BOARD0=y\n')
         tools.write_file(norm, f'#include <{inc}>', False)
@@ -1421,7 +1421,7 @@  CONFIG_SOC="fred"
             'config': 'config0',
             'target': 'board0'}, []), res)
 
-    def testTarget(self):
+    def test_target(self):
         """Test that the --target flag works"""
         lines = self.check_command('--target', 'u-boot.dtb')[0]
 
@@ -1450,7 +1450,7 @@  targets:
         fname = os.path.join(self._base_dir, 'try.buildman')
         tools.write_file(fname, data.encode('utf-8'))
         result = boards.ExtendedParser.parse_file(fname)
-        self.maxDiff = None
+        self.maxDiff = None  # pylint: disable=C0103
         self.assertEqual([
             Extended(name='acpi_boards',
                      desc='Build RISC-V QEMU builds with ACPI',
@@ -1539,7 +1539,7 @@  something: me
         # between boards when a thread processes multiple boards sequentially.
         with mock.patch.object(builderthread, 'kconfig_changed_since',
                                mock_kconfig_changed):
-            self._RunControl('-b', TEST_BRANCH, '-c2', '-o', self._output_dir,
+            self._run_control('-b', TEST_BRANCH, '-c2', '-o', self._output_dir,
                              '-P')
 
         # Verify kconfig_changed_since was called
@@ -1561,7 +1561,7 @@  something: me
         # Run buildman with kconfig checking disabled (-Z)
         with mock.patch.object(builderthread, 'kconfig_changed_since',
                                mock_kconfig_changed):
-            self._RunControl('-b', TEST_BRANCH, '-c2', '-o', self._output_dir,
+            self._run_control('-b', TEST_BRANCH, '-c2', '-o', self._output_dir,
                              '-Z')
 
         # Verify kconfig_changed_since was NOT called (feature disabled)