Browse Source

Add more tests for sorted_tree_items

Jelmer Vernooij 5 months ago
parent
commit
f5058105b3
1 changed files with 24 additions and 5 deletions
  1. 24 5
      tests/test_objects.py

+ 24 - 5
tests/test_objects.py

@@ -45,6 +45,7 @@ from dulwich.objects import (
     format_timezone,
     hex_to_filename,
     hex_to_sha,
+    key_entry,
     object_class,
     parse_timezone,
     pretty_format_tree_entry,
@@ -816,27 +817,31 @@ nHxksHfeNln9RKseIDcy4b2ATjhDNIJZARHNfr6oy4u3XPW4svRqtBsLoMiIeuI=
 
 
 _TREE_ITEMS = {
+    b"a-c": (0o100755, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
     b"a.c": (0o100755, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
+    b"aoc": (0o100755, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
     b"a": (stat.S_IFDIR, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
     b"a/c": (stat.S_IFDIR, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
 }
 
 _SORTED_TREE_ITEMS = [
+    TreeEntry(b"a-c", 0o100755, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
     TreeEntry(b"a.c", 0o100755, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
     TreeEntry(b"a", stat.S_IFDIR, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
     TreeEntry(b"a/c", stat.S_IFDIR, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
+    TreeEntry(b"aoc", 0o100755, b"d80c186a03f423a81b39df39dc87fd269736ca86"),
 ]
 
 
 _TREE_ITEMS_BUG_1325 = {
-    b'gamma': (0o100755, b'5944b31ff85b415573d1a43eb942e2dea30ab8be'),
-    b'gamma-new': (0o100644, b'cf7a729ca69bfabd0995fc9b083e86a18215bd91'),
+    b'dir': (stat.S_IFDIR | 0o644, b'5944b31ff85b415573d1a43eb942e2dea30ab8be'),
+    b'dira': (0o100644, b'cf7a729ca69bfabd0995fc9b083e86a18215bd91'),
 }
 
 
 _SORTED_TREE_ITEMS_BUG_1325 = [
-    TreeEntry(path=b'gamma', mode=0o100755, sha=b'5944b31ff85b415573d1a43eb942e2dea30ab8be'),
-    TreeEntry(path=b'gamma-new', mode=0o100644, sha=b'cf7a729ca69bfabd0995fc9b083e86a18215bd91'),
+    TreeEntry(path=b'dir', mode=stat.S_IFDIR | 0o644, sha=b'5944b31ff85b415573d1a43eb942e2dea30ab8be'),
+    TreeEntry(path=b'dira', mode=0o100644, sha=b'cf7a729ca69bfabd0995fc9b083e86a18215bd91'),
 ]
 
 
@@ -903,7 +908,8 @@ class TreeTests(ShaFileCheckTests):
         self.assertEqual(_SORTED_TREE_ITEMS, actual)
         self.assertIsInstance(actual[0], TreeEntry)
 
-        actual = do_sort(_TREE_ITEMS_BUG_1325, True)
+        actual = do_sort(_TREE_ITEMS_BUG_1325, False)
+        self.assertEqual(key_entry((b"a", (0o40644, b"cf7a729ca69bfabd0995fc9b083e86a18215bd91"))), b"a/")
         self.assertEqual(_SORTED_TREE_ITEMS_BUG_1325, actual)
         self.assertIsInstance(actual[0], TreeEntry)
 
@@ -924,6 +930,7 @@ class TreeTests(ShaFileCheckTests):
         _do_test_sorted_tree_items, _sorted_tree_items_py
     )
     if _sorted_tree_items_rs is not None:
+        assert _sorted_tree_items_rs != _sorted_tree_items_py
         test_sorted_tree_items_extension = ext_functest_builder(
             _do_test_sorted_tree_items, _sorted_tree_items_rs
         )
@@ -936,6 +943,11 @@ class TreeTests(ShaFileCheckTests):
                     stat.S_IFDIR,
                     b"d80c186a03f423a81b39df39dc87fd269736ca86",
                 ),
+                TreeEntry(
+                    b"a-c",
+                    0o100755,
+                    b"d80c186a03f423a81b39df39dc87fd269736ca86",
+                ),
                 TreeEntry(
                     b"a.c",
                     0o100755,
@@ -946,6 +958,13 @@ class TreeTests(ShaFileCheckTests):
                     stat.S_IFDIR,
                     b"d80c186a03f423a81b39df39dc87fd269736ca86",
                 ),
+                TreeEntry(
+                    b"aoc",
+                    0o100755,
+                    b"d80c186a03f423a81b39df39dc87fd269736ca86",
+                ),
+
+
             ],
             list(sorted_tree_items(_TREE_ITEMS, True)),
         )