code: def test_invalid_notebook_job_name(self):
      self._do_test_for_invalid_notebook_job_name("notebo okjob")
      self._do_test_for_invalid_notebook_job_name("123notebookjob")
      self._do_test_for_invalid_notebook_job_name("_Notebookjob")
      self._do_test_for_invalid_notebook_job_name("-notebookjob")
      self._do_test_for_invalid_notebook_job_name(".notebookjob")
      self._do_test_for_invalid_notebook_job_name("noteb.ookjob")
      self._do_test_for_invalid_notebook_job_name("~noteb~ookjob")
      self._do_test_for_invalid_notebook_job_name("noteb@#ookjob")
  
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 7 for calling the TestNotebookJobStep obj's underlying member method code with example usage: obj.test_invalid_notebook_job_name() without return types