@@ -854,6 +854,7 @@ def setUp(self):
854854 self .img_path .joinpath ('imaging.frames.tar.bz2' ).touch ()
855855
856856 def test_and (self ):
857+ """Test for ExpectedDataset input with AND operator."""
857858 I = handlers .ExpectedDataset .input # noqa
858859 sig = I ('*.tif' , 'raw_imaging_data_[0-9]*' ) & I ('imaging.frames.tar.bz2' , 'raw_imaging_data_[0-9]*' )
859860 self .assertEqual ('and' , sig .operator )
@@ -863,6 +864,16 @@ def test_and(self):
863864 self .assertEqual ('foo_00000.tif' , files [0 ].name )
864865 self .assertEqual ('imaging.frames.tar.bz2' , files [- 1 ].name )
865866 self .assertEqual (set (), missing )
867+ # Check with register arg
868+ ok , _files , missing = sig .find_files (self .session_path , register = True )
869+ self .assertTrue (ok )
870+ self .assertEqual ([], _files )
871+ self .assertEqual (set (), missing )
872+ sig ._identifiers [1 ].register = True
873+ ok , _files , missing = sig .find_files (self .session_path , register = True )
874+ self .assertTrue (ok )
875+ self .assertEqual (1 , len (_files ))
876+ self .assertEqual ('imaging.frames.tar.bz2' , _files [0 ].name )
866877 # Deleting one tif file shouldn't affect the signature
867878 files [0 ].unlink ()
868879 ok , files , missing = sig .find_files (self .session_path )
@@ -878,6 +889,7 @@ def test_and(self):
878889 self .assertEqual ({'raw_imaging_data_[0-9]*/imaging.frames.tar.bz2' }, missing )
879890
880891 def test_or (self ):
892+ """Test for ExpectedDataset input with OR operator."""
881893 I = handlers .ExpectedDataset .input # noqa
882894 sig = I ('*.tif' , 'raw_imaging_data_[0-9]*' ) | I ('imaging.frames.tar.bz2' , 'raw_imaging_data_[0-9]*' )
883895 self .assertEqual ('or' , sig .operator )
@@ -886,6 +898,17 @@ def test_or(self):
886898 self .assertEqual (5 , len (files ))
887899 self .assertEqual ({'.tif' }, set (x .suffix for x in files ))
888900 self .assertEqual (set (), missing )
901+ # Test with register filter
902+ ok , _files , missing = sig .find_files (self .session_path , register = True )
903+ self .assertTrue (ok )
904+ self .assertEqual ([], _files )
905+ self .assertEqual (set (), missing )
906+ sig ._identifiers [1 ].register = True
907+ ok , _files , missing = sig .find_files (self .session_path , register = True )
908+ self .assertTrue (ok )
909+ # NB: Although 2nd file has register=True, the first is present so nothing is returned here
910+ self .assertEqual ([], _files )
911+ self .assertEqual (set (), missing )
889912 for f in files :
890913 f .unlink ()
891914 ok , files , missing = sig .find_files (self .session_path )
@@ -900,6 +923,7 @@ def test_or(self):
900923 self .assertEqual ({'raw_imaging_data_[0-9]*/*.tif' , 'raw_imaging_data_[0-9]*/imaging.frames.tar.bz2' }, missing )
901924
902925 def test_xor (self ):
926+ """Test for ExpectedDataset input with XOR operator."""
903927 I = handlers .ExpectedDataset .input # noqa
904928 sig = I ('*.tif' , 'raw_imaging_data_[0-9]*' ) ^ I ('imaging.frames.tar.bz2' , 'raw_imaging_data_[0-9]*' )
905929 self .assertEqual ('xor' , sig .operator )
@@ -909,6 +933,17 @@ def test_xor(self):
909933 self .assertEqual ({'.tif' , '.bz2' }, set (x .suffix for x in files ))
910934 expected_missing = {'raw_imaging_data_[0-9]*/*.tif' , 'raw_imaging_data_[0-9]*/imaging.frames.tar.bz2' }
911935 self .assertEqual (expected_missing , missing )
936+ # Test register kwarg
937+ ok , _files , missing = sig .find_files (self .session_path , register = True )
938+ self .assertFalse (ok )
939+ self .assertEqual ([], _files )
940+ self .assertEqual (expected_missing , missing )
941+ sig ._identifiers [1 ].register = True
942+ ok , _files , _ = sig .find_files (self .session_path , register = True )
943+ self .assertFalse (ok )
944+ self .assertEqual (1 , len (_files ))
945+ self .assertEqual ('imaging.frames.tar.bz2' , _files [0 ].name )
946+ # Remove first expected dataset(s)
912947 for f in filter (lambda x : x .suffix == '.tif' , files ):
913948 f .unlink ()
914949 ok , files , missing = sig .find_files (self .session_path )
0 commit comments