code: def test_parse_args(self):
      n = Namespace()
  
      arg_dict = {}
  
      arg_list = [
          "key=value",
          "arg1=test1",
          "arg2=test2",
          "arg_3=test3",
          "_arg_4_=test4",
      ]
      for arg in arg_list:
          parse_extension_arg(arg, arg_dict)
      assert_equal(
          arg_dict,
          {
              "_arg_4_": "test4",
              "arg_3": "test3",
              "arg2": "test2",
              "arg1": "test1",
              "key": "value",
          },
      )
      create_args(arg_list, n)
      assert_equal(n.key, "value")
      assert_equal(n.arg1, "test1")
      assert_equal(n.arg2, "test2")
      assert_equal(n.arg_3, "test3")
      assert_equal(n._arg_4_, "test4")
  
      msg = (
          "invalid extension argument '1=test3', "
          "must be in key=value form"
      )
      with assert_raises_str(ValueError, msg):
          parse_extension_arg("1=test3", {})
      msg = (
          "invalid extension argument 'arg4 test4', "
          "must be in key=value form"
      )
      with assert_raises_str(ValueError, msg):
          parse_extension_arg("arg4 test4", {})
      msg = (
          "invalid extension argument 'arg5.1=test5', "
          "must be in key=value form"
      )
      with assert_raises_str(ValueError, msg):
          parse_extension_arg("arg5.1=test5", {})
      msg = (
          "invalid extension argument 'arg6.6arg=test6', "
          "must be in key=value form"
      )
      with assert_raises_str(ValueError, msg):
          parse_extension_arg("arg6.6arg=test6", {})
      msg = (
          "invalid extension argument 'arg7.-arg7=test7', "
          "must be in key=value form"
      )
      with assert_raises_str(ValueError, msg):
          parse_extension_arg("arg7.-arg7=test7", {})
  
file_path: zipline/tests/test_cmdline.py
imports: import mock
  import zipline.__main__
  import zipline
  from zipline.testing import ZiplineTestCase
  from zipline.testing.fixtures import WithTmpDir
  from zipline.testing.predicates import assert_equal, assert_raises_str
  from click.testing import CliRunner
  from zipline.extensions import Namespace, create_args, parse_extension_arg
label_desc: Use image node_id 2 for calling the CmdLineTestCase obj's underlying member method code with example usage: obj.test_parse_args() without return types