Forráskód Böngészése

dumb: Ensure to provide bytes message to progress

The progress callback expects a bytes message not a string one,
this was causing error when using porcelain.clone for instance.

Add line break at end of progress message for better display.
Antoine Lambert 1 hónapja
szülő
commit
53be9caef4
2 módosított fájl, 7 hozzáadás és 2 törlés
  1. 1 1
      dulwich/dumb.py
  2. 6 1
      tests/test_dumb.py

+ 1 - 1
dulwich/dumb.py

@@ -461,4 +461,4 @@ class DumbRemoteHTTPRepo(BaseRepo):
                     to_fetch.add(item_sha)
 
             if progress:
-                progress(f"Fetching objects: {len(seen)} done")
+                progress(f"Fetching objects: {len(seen)} done\n".encode())

+ 6 - 1
tests/test_dumb.py

@@ -280,7 +280,12 @@ fedcba9876543210fedcba9876543210fedcba98\trefs/tags/v1.0
         def determine_wants(refs):
             return [blob_sha]
 
-        result = list(self.repo.fetch_pack_data(graph_walker, determine_wants))
+        def progress(msg):
+            assert isinstance(msg, bytes)
+
+        result = list(
+            self.repo.fetch_pack_data(graph_walker, determine_wants, progress)
+        )
         self.assertEqual(1, len(result))
         self.assertEqual(Blob.type_num, result[0].pack_type_num)
         self.assertEqual([blob.as_raw_string()], result[0].obj_chunks)