code: def test_parse_namespaces(self):
      n = Namespace()
  
      create_args(
          [
              "first.second.a=blah1",
              "first.second.b=blah2",
              "first.third=blah3",
              "second.a=blah4",
              "second.b=blah5",
          ],
          n,
      )
  
      assert_equal(n.first.second.a, "blah1")
      assert_equal(n.first.second.b, "blah2")
      assert_equal(n.first.third, "blah3")
      assert_equal(n.second.a, "blah4")
      assert_equal(n.second.b, "blah5")
  
      n = Namespace()
  
      msg = "Conflicting assignments at namespace level 'second'"
      with assert_raises_str(ValueError, msg):
          create_args(
              [
                  "first.second.a=blah1",
                  "first.second.b=blah2",
                  "first.second=blah3",
              ],
              n,
          )
  
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 3 for calling the CmdLineTestCase obj's underlying member method code with example usage: obj.test_parse_namespaces() without return types