@@ -697,21 +697,55 @@ def test_convert(self, tmp_path):
697
697
698
698
699
699
class TestVcfPartition :
700
+ path = "tests/data/vcf/NA12878.prod.chr20snippet.g.vcf.gz"
701
+
700
702
def test_num_parts (self ):
701
- path = "tests/data/vcf/NA12878.prod.chr20snippet.g.vcf.gz"
703
+ runner = ct .CliRunner (mix_stderr = False )
704
+ result = runner .invoke (
705
+ cli .vcfpartition , [self .path , "-n" , "5" ], catch_exceptions = False
706
+ )
707
+ assert result .stderr == ""
708
+ assert result .exit_code == 0
709
+ assert list (result .stdout .splitlines ()) == [
710
+ "20:60001-278528\t tests/data/vcf/NA12878.prod.chr20snippet.g.vcf.gz" ,
711
+ "20:278529-442368\t tests/data/vcf/NA12878.prod.chr20snippet.g.vcf.gz" ,
712
+ "20:442381-638976\t tests/data/vcf/NA12878.prod.chr20snippet.g.vcf.gz" ,
713
+ "20:638982-819200\t tests/data/vcf/NA12878.prod.chr20snippet.g.vcf.gz" ,
714
+ "20:819201-\t tests/data/vcf/NA12878.prod.chr20snippet.g.vcf.gz" ,
715
+ ]
702
716
717
+ def test_part_size (self ):
703
718
runner = ct .CliRunner (mix_stderr = False )
704
719
result = runner .invoke (
705
- cli .vcfpartition , [path , "-n " , "5 " ], catch_exceptions = False
720
+ cli .vcfpartition , [self . path , "-s " , "512K " ], catch_exceptions = False
706
721
)
722
+ assert result .stderr == ""
723
+ assert result .exit_code == 0
707
724
assert list (result .stdout .splitlines ()) == [
708
- "20:60001-278528" ,
709
- "20:278529-442368" ,
710
- "20:442381-638976" ,
711
- "20:638982-819200" ,
712
- "20:819201-" ,
725
+ "20:60001-212992\t tests/data/vcf/NA12878.prod.chr20snippet.g.vcf.gz" ,
726
+ "20:213070-327680\t tests/data/vcf/NA12878.prod.chr20snippet.g.vcf.gz" ,
727
+ "20:327695-442368\t tests/data/vcf/NA12878.prod.chr20snippet.g.vcf.gz" ,
728
+ "20:442381-557056\t tests/data/vcf/NA12878.prod.chr20snippet.g.vcf.gz" ,
729
+ "20:557078-688128\t tests/data/vcf/NA12878.prod.chr20snippet.g.vcf.gz" ,
730
+ "20:688129-802816\t tests/data/vcf/NA12878.prod.chr20snippet.g.vcf.gz" ,
731
+ "20:802817-933888\t tests/data/vcf/NA12878.prod.chr20snippet.g.vcf.gz" ,
732
+ "20:933890-\t tests/data/vcf/NA12878.prod.chr20snippet.g.vcf.gz" ,
713
733
]
714
734
735
+ def test_no_part_spec (self ):
736
+ runner = ct .CliRunner (mix_stderr = False )
737
+ result = runner .invoke (cli .vcfpartition , [self .path ], catch_exceptions = False )
738
+ assert result .exit_code != 0
739
+ assert result .stdout == ""
740
+ assert len (result .stderr ) > 0
741
+
742
+ def test_no_args (self ):
743
+ runner = ct .CliRunner (mix_stderr = False )
744
+ result = runner .invoke (cli .vcfpartition , [], catch_exceptions = False )
745
+ assert result .exit_code != 0
746
+ assert result .stdout == ""
747
+ assert len (result .stderr ) > 0
748
+
715
749
716
750
@pytest .mark .parametrize (
717
751
"cmd" , [main .bio2zarr , cli .vcf2zarr_main , cli .plink2zarr , cli .vcfpartition ]
0 commit comments