Переглянути джерело

Merge branch 'release/1.10.x'

rdb 4 роки тому
батько
коміт
7a2a83572c

+ 6 - 1
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"]

+ 1 - 1
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;
     }

+ 51 - 0
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