def t2_add_retr_object_with_attr(tree=False):
    del_tree = False
    if not tree:
        del_tree = True
        tree = YANGPathHelper()
    for p in [["container"], ["container", "deeper"]]:
        tree.register(p, TestObject("container"))
        for q_style in ["'", '"', ""]:
            for i in range(0, 5):
                tree.register(p + ["foo[id=%s%d%s]" % (
                    q_style,
                    i,
                    q_style,
                )], TestObject("t2_ObjTest%d" % i))
            for q_style in ["'", '"', ""]:
                for j in range(0, 5):
                    retr_obj = tree.get("%s/foo[id=%s%d%s]" % (
                        "/" + "/".join(p),
                        q_style,
                        j,
                        q_style,
                    ))
                    assert len(retr_obj) == 1, (
                        "retrieved the wrong number of objects (%d != 1)" %
                        len(retr_obj))
                    assert isinstance(
                        retr_obj[0],
                        TestObject), ("retrieved object was not " +
                                      "the correct class")
                    assert retr_obj[0].name() == "t2_ObjTest%d" % j, (
                        "retrieved object had an " +
                        "invalid name specified (%s != t2_ObjTest%d, q_style=%s)"
                        % (retr_obj.name(), j, q_style))
    if del_tree:
        del tree
def t1_add_retr_object_plain(tree=False):
  del_tree = False
  if not tree:
    del_tree = True
    tree = YANGPathHelper()
  obj_one = TestObject("t1_ObjOneTest")
  tree.register(["obj_one"], obj_one)
  retr_obj = tree.get(["obj_one"])
  assert len(retr_obj) == 1, ("retrieved path matched the wrong number of objects (%d != 1)"
    % (len(retr_obj)))
  assert isinstance(retr_obj[0], TestObject), ("retrieved object was not the " +
            "correct class")
  assert retr_obj[0].name() == "t1_ObjOneTest", ("retrieved object had an " +
            "invalid name specified (%s != t1_ObjOneTest)" % retr_obj.name())
  if del_tree:
    del tree
def t4_retr_obj_error(tree=False):
  del_tree = False
  if not tree:
    del_tree = True
    tree = YANGPathHelper()

  retr = tree.get("/a/non-existant/path")

  assert len(retr) == 0, ("getting a non-existant path returned the wrong number" +
            "of objects (%d != 0)" % (len(retr)))

  passed = False
  try:
    tree.register("an-invalid-path-name", TestObject("invalid"))
  except XPathError:
    passed = True
  assert passed == True, ("setting an invalid path did not throw an XPathError")
def t1_add_retr_object_plain(tree=False):
    del_tree = False
    if not tree:
        del_tree = True
        tree = YANGPathHelper()
    obj_one = TestObject("t1_ObjOneTest")
    tree.register(["obj_one"], obj_one)
    retr_obj = tree.get(["obj_one"])
    assert len(retr_obj) == 1, (
        "retrieved path matched the wrong number of objects (%d != 1)" %
        (len(retr_obj)))
    assert isinstance(retr_obj[0],
                      TestObject), ("retrieved object was not the " +
                                    "correct class")
    assert retr_obj[0].name() == "t1_ObjOneTest", (
        "retrieved object had an " +
        "invalid name specified (%s != t1_ObjOneTest)" % retr_obj.name())
    if del_tree:
        del tree
def t4_retr_obj_error(tree=False):
    del_tree = False
    if not tree:
        del_tree = True
        tree = YANGPathHelper()

    retr = tree.get("/a/non-existant/path")

    assert len(retr) == 0, (
        "getting a non-existant path returned the wrong number" +
        "of objects (%d != 0)" % (len(retr)))

    passed = False
    try:
        tree.register("an-invalid-path-name", TestObject("invalid"))
    except XPathError:
        passed = True
    assert passed == True, (
        "setting an invalid path did not throw an XPathError")
def t3_add_retr_object_hierarchy(tree=False):
  del_tree = False
  if not tree:
    del_tree = True
    tree = YANGPathHelper()
  path = []
  obj = {}
  for i in range(0,10):
    path += ["node%d" % i]
    obj[i] = TestObject(i)
    tree.register(path, obj[i])
  path = ""
  for j in range(0,10):
    path += "/node%d"% j
    retr_obj = tree.get(path)
    assert len(retr_obj) == 1, ("incorrect number of objects retrieved for %s (%d != 1)" %
      (path,len(retr_obj)))
    assert retr_obj[0].name() == j, ("retrieved object did not " +
              "have a valid name (%s != %s)" % (j, retr_obj.name()))
def t2_add_retr_object_with_attr(tree=False):
  del_tree = False
  if not tree:
    del_tree = True
    tree = YANGPathHelper()
  for p in [["container"], ["container", "deeper"]]:
    tree.register(p, TestObject("container"))
    for q_style in ["'", '"', ""]:
      for i in range(0,5):
        tree.register(p+["foo[id=%s%d%s]" % (q_style, i, q_style,)], TestObject("t2_ObjTest%d" % i))
      for q_style in ["'", '"', ""]:
        for j in range(0,5):
          retr_obj = tree.get("%s/foo[id=%s%d%s]" % ("/"+"/".join(p), q_style, j, q_style,))
          assert len(retr_obj) == 1, ("retrieved the wrong number of objects (%d != 1)" % len(retr_obj))
          assert isinstance(retr_obj[0], TestObject), ("retrieved object was not " +
                    "the correct class")
          assert retr_obj[0].name() == "t2_ObjTest%d" % j, ("retrieved object had an " +
                  "invalid name specified (%s != t2_ObjTest%d, q_style=%s)" % (retr_obj.name(), j ,q_style))
  if del_tree:
    del tree
def t3_add_retr_object_hierarchy(tree=False):
    del_tree = False
    if not tree:
        del_tree = True
        tree = YANGPathHelper()
    path = []
    obj = {}
    for i in range(0, 10):
        path += ["node%d" % i]
        obj[i] = TestObject(i)
        tree.register(path, obj[i])
    path = ""
    for j in range(0, 10):
        path += "/node%d" % j
        retr_obj = tree.get(path)
        assert len(retr_obj) == 1, (
            "incorrect number of objects retrieved for %s (%d != 1)" %
            (path, len(retr_obj)))
        assert retr_obj[0].name() == j, ("retrieved object did not " +
                                         "have a valid name (%s != %s)" %
                                         (j, retr_obj.name()))