diff --git a/makepanda/test_wheel.py b/makepanda/test_wheel.py index 959c1920f0..8742c8df6f 100755 --- a/makepanda/test_wheel.py +++ b/makepanda/test_wheel.py @@ -37,7 +37,12 @@ def test_wheel(wheel, verbose=False): sys.exit(1) # Install pytest into the environment, as well as our wheel. - packages = ["pytest", wheel] + packages = [wheel] + if sys.version_info >= (3, 10): + packages += ["pytest>=6.2.4"] + else: + packages += ["pytest"] + if sys.version_info[0:2] == (3, 4): if sys.platform == "win32": packages += ["colorama==0.4.1"] diff --git a/panda/src/pgraph/pandaNode.cxx b/panda/src/pgraph/pandaNode.cxx index 9e13b3edfe..31dee668bd 100644 --- a/panda/src/pgraph/pandaNode.cxx +++ b/panda/src/pgraph/pandaNode.cxx @@ -1306,7 +1306,7 @@ compare_tags(const PandaNode *other) const { return cmp; } - cmp = strcmp(a_data.get_key(ai).c_str(), b_data.get_key(bi).c_str()); + cmp = strcmp(a_data.get_data(ai).c_str(), b_data.get_data(bi).c_str()); if (cmp != 0) { return cmp; } diff --git a/tests/pgraph/test_nodepath.py b/tests/pgraph/test_nodepath.py index bde54a1782..abdcad14e6 100644 --- a/tests/pgraph/test_nodepath.py +++ b/tests/pgraph/test_nodepath.py @@ -176,6 +176,57 @@ def test_weak_nodepath_comparison(): assert weak.node() == path.node() +def test_nodepath_flatten_tags_identical(): + from panda3d.core import NodePath, PandaNode + + # Do flatten nodes with same tags + node1 = PandaNode("node1") + node1.set_tag("key", "value") + node2 = PandaNode("node2") + node2.set_tag("key", "value") + + path = NodePath("parent") + path.node().add_child(node1) + path.node().add_child(node2) + + path.flatten_strong() + assert len(path.children) == 1 + + +def test_nodepath_flatten_tags_same_key(): + from panda3d.core import NodePath, PandaNode + + # Don't flatten nodes with different tag keys + node1 = PandaNode("node1") + node1.set_tag("key1", "value") + node2 = PandaNode("node2") + node2.set_tag("key2", "value") + + path = NodePath("parent") + path.node().add_child(node1) + path.node().add_child(node2) + + path.flatten_strong() + assert len(path.children) == 2 + + +def test_nodepath_flatten_tags_same_value(): + from panda3d.core import NodePath, PandaNode + + # Don't flatten nodes with different tag values + node1 = PandaNode("node1") + node1.set_tag("key", "value1") + node2 = PandaNode("node2") + node2.set_tag("key", "value2") + + path = NodePath("parent") + path.node().add_child(node1) + path.node().add_child(node2) + + path.flatten_strong() + assert len(path.children) == 2 + + def test_nodepath_python_tags(): from panda3d.core import NodePath