@@ -24,6 +24,7 @@ def _assert_fprogress(self, entries):
2424 assert len (entries ) == len (self ._fprogress_map )
2525 for path , call_count in self ._fprogress_map .iteritems ():
2626 assert call_count == 2
27+ # END for each item in progress map
2728 self ._reset_progress ()
2829
2930 def _fprogress (self , path , done , item ):
@@ -44,6 +45,13 @@ def _fprogress_add(self, path, done, item):
4445 def _reset_progress (self ):
4546 # maps paths to the count of calls
4647 self ._fprogress_map = dict ()
48+
49+ def _assert_entries (self , entries ):
50+ for entry in entries :
51+ assert isinstance (entry , BaseIndexEntry )
52+ assert not os .path .isabs (entry .path )
53+ assert not "\\ " in entry .path
54+ # END for each entry
4755
4856 def test_index_file_base (self ):
4957 # read from file
@@ -172,7 +180,7 @@ def test_index_merge_tree(self, rw_repo):
172180 # sha for it ( which makes things faster of course )
173181 manifest_fake_entry = BaseIndexEntry ((manifest_entry [0 ], "\0 " * 20 , 0 , manifest_entry [3 ]))
174182 # try write flag
175- rw_repo .index .add ([manifest_fake_entry ], write = False )
183+ self . _assert_entries ( rw_repo .index .add ([manifest_fake_entry ], write = False ) )
176184 # add actually resolves the null-hex-sha for us as a feature, but we can
177185 # edit the index manually
178186 assert rw_repo .index .entries [manifest_key ].binsha != Object .NULL_BIN_SHA
@@ -420,22 +428,25 @@ def mixed_iterator():
420428 # re-add all files in lib
421429 # get the lib folder back on disk, but get an index without it
422430 index .reset (new_commit .parents [0 ], working_tree = True ).reset (new_commit , working_tree = False )
423- lib_file_path = "lib/ git/ __init__.py"
431+ lib_file_path = os . path . join ( "lib" , " git" , " __init__.py")
424432 assert (lib_file_path , 0 ) not in index .entries
425433 assert os .path .isfile (os .path .join (rw_repo .working_tree_dir , lib_file_path ))
426434
427435 # directory
428436 entries = index .add (['lib' ], fprogress = self ._fprogress_add )
437+ self ._assert_entries (entries )
429438 self ._assert_fprogress (entries )
430439 assert len (entries )> 1
431440
432441 # glob
433- entries = index .reset (new_commit ).add (['lib/git/*.py' ], fprogress = self ._fprogress_add )
442+ entries = index .reset (new_commit ).add ([os .path .join ('lib' , 'git' , '*.py' )], fprogress = self ._fprogress_add )
443+ self ._assert_entries (entries )
434444 self ._assert_fprogress (entries )
435445 assert len (entries ) == 14
436446
437447 # same file
438- entries = index .reset (new_commit ).add (['lib/git/head.py' ]* 2 , fprogress = self ._fprogress_add )
448+ entries = index .reset (new_commit ).add ([os .path .abspath (os .path .join ('lib' , 'git' , 'head.py' ))]* 2 , fprogress = self ._fprogress_add )
449+ self ._assert_entries (entries )
439450 assert entries [0 ].mode & 0644 == 0644
440451 # would fail, test is too primitive to handle this case
441452 # self._assert_fprogress(entries)
@@ -448,6 +459,7 @@ def mixed_iterator():
448459 # blob from older revision overrides current index revision
449460 old_blob = new_commit .parents [0 ].tree .blobs [0 ]
450461 entries = index .reset (new_commit ).add ([old_blob ], fprogress = self ._fprogress_add )
462+ self ._assert_entries (entries )
451463 self ._assert_fprogress (entries )
452464 assert index .entries [(old_blob .path ,0 )].hexsha == old_blob .hexsha and len (entries ) == 1
453465
@@ -460,6 +472,7 @@ def mixed_iterator():
460472 new_file_relapath = "my_new_file"
461473 new_file_path = self ._make_file (new_file_relapath , "hello world" , rw_repo )
462474 entries = index .reset (new_commit ).add ([BaseIndexEntry ((010644 , null_bin_sha , 0 , new_file_relapath ))], fprogress = self ._fprogress_add )
475+ self ._assert_entries (entries )
463476 self ._assert_fprogress (entries )
464477 assert len (entries ) == 1 and entries [0 ].hexsha != null_hex_sha
465478
@@ -470,6 +483,7 @@ def mixed_iterator():
470483 link_file = os .path .join (rw_repo .working_tree_dir , basename )
471484 os .symlink (target , link_file )
472485 entries = index .reset (new_commit ).add ([link_file ], fprogress = self ._fprogress_add )
486+ self ._assert_entries (entries )
473487 self ._assert_fprogress (entries )
474488 assert len (entries ) == 1 and S_ISLNK (entries [0 ].mode )
475489 assert S_ISLNK (index .entries [index .entry_key ("my_real_symlink" , 0 )].mode )
@@ -484,6 +498,7 @@ def mixed_iterator():
484498 fake_symlink_path = self ._make_file (fake_symlink_relapath , link_target , rw_repo )
485499 fake_entry = BaseIndexEntry ((0120000 , null_bin_sha , 0 , fake_symlink_relapath ))
486500 entries = index .reset (new_commit ).add ([fake_entry ], fprogress = self ._fprogress_add )
501+ self ._assert_entries (entries )
487502 self ._assert_fprogress (entries )
488503 assert entries [0 ].hexsha != null_hex_sha
489504 assert len (entries ) == 1 and S_ISLNK (entries [0 ].mode )
@@ -571,7 +586,7 @@ def make_paths():
571586 # END for each new file
572587 # END path producer
573588 paths = list (make_paths ())
574- index .add (paths , path_rewriter = rewriter )
589+ self . _assert_entries ( index .add (paths , path_rewriter = rewriter ) )
575590
576591 for filenum in range (len (paths )):
577592 assert index .entry_key (str (filenum ), 0 ) in index .entries
0 commit comments