code: def _do_test_for_invalid_notebook_job_name(self, job_name):
      with self.assertRaises(ValueError) as context:
          NotebookJobStep(
              name=STEP_NAME,
              display_name=DISPLAY_NAME,
              description=DESCRIPTION,
              notebook_job_name=job_name,
              input_notebook=INPUT_NOTEBOOK,
              image_uri=IMAGE_URI,
              kernel_name=KERNEL_NAME,
          ).arguments
      self.assertTrue(
          f"Notebook Job Name({job_name}) is not valid. Valid name should start with letters "
          "and contain only letters, numbers, hyphens, and underscores."
          in str(context.exception)
      )
  
imports: from __future__ import absolute_import
  import unittest
  from mock import Mock, patch
  from sagemaker.workflow.notebook_job_step import NotebookJobStep
  from sagemaker.workflow.functions import Join
label_desc: Use image node_id 8 for calling the TestNotebookJobStep obj's underlying member method code with example usage: obj._do_test_for_invalid_notebook_job_name(job_name) without return types