def test_bowtie_samples(testdir, mock_testclass): samples = Path(__file__).parent.joinpath('samples.txt') b.bowtie_sample = MagicMock() b.bowtie_samples(samples) b.bowtie_sample.assert_any_call('POLR2A', None, '', ()) b.bowtie_sample.assert_any_call('ASDURF', None, '', ()) b.bowtie_sample.assert_any_call('POLR1C', None, '', ())
def test_run_bowtie_singlethread(testdir, mock_testclass): sample = 'PORL2A' bam = sample + '.bam' fastq = sample + '_1.fastq' copyfile(Path(__file__).parent.joinpath('samples.txt'), fastq) fastq2 = sample + '_2.fastq' copyfile(Path(__file__).parent.joinpath('samples.txt'), fastq2) threads = 1 bowtie_args = ( '-x', 'sacCer3.fa', ) subprocess.run = MagicMock(side_effect=create_file) b.run_bowtie(fastq, fastq2, bam, threads, bowtie_args) call1 = [ 'bowtie2', '-x', 'sacCer3.fa', '-S', ANY, '-1', fastq, '-2', fastq2 ] call2 = ['samtools', 'view', '-b', '-o', ANY, ANY] call3 = ['samtools', 'sort', '-o', bam, ANY] subprocess.run.assert_any_call(call1, check=True) subprocess.run.assert_any_call(call2, check=True) subprocess.run.assert_any_call(call3, check=True) subprocess.run.assert_has_calls([ call(call1, check=True), call(call2, check=True), call(call3, check=True) ], True) assert subprocess.run.call_args_list[0].args[0][ 4] == subprocess.run.call_args_list[1].args[0][5] assert subprocess.run.call_args_list[1].args[0][ 4] == subprocess.run.call_args_list[2].args[0][4]
def test_bowtie_sample_single(testdir, mock_testclass): sample = 'PORL2A' bam = sample + '.bam' fastq = sample + '_1.fastq' b.run_bowtie = MagicMock() Fastq.fastq = MagicMock(side_effect=[fastq, None]) b.bowtie_sample(sample) Fastq.fastq.assert_any_call(sample, 1) Fastq.fastq.assert_any_call(sample, 2) b.run_bowtie.assert_called_once_with(fastq, None, bam, None, ())
def test_bowtie_samples_parameters(testdir, mock_testclass): samples = Path(__file__).parent.joinpath('samples.txt') threads = 2 output_suffix = '-sacCer' bowtie_args = ( '-x', 'sacCer3.fa', ) b.bowtie_sample = MagicMock() b.bowtie_samples(samples, threads, output_suffix, bowtie_args=bowtie_args) b.bowtie_sample.assert_any_call('POLR2A', threads, output_suffix, bowtie_args) b.bowtie_sample.assert_any_call('ASDURF', threads, output_suffix, bowtie_args) b.bowtie_sample.assert_any_call('POLR1C', threads, output_suffix, bowtie_args)
def test_bowtie_sample_parameters(testdir, mock_testclass): sample = 'PORL2A' output_suffix = '-sacCer' bam = sample + output_suffix + '.bam' fastq = sample + '_1.fastq' fastq2 = sample + '_2.fastq' threads = 2 bowtie_args = ( '-x', 'sacCer3.fa', ) b.run_bowtie = MagicMock() Fastq.fastq = MagicMock(side_effect=[fastq, fastq2]) b.bowtie_sample(sample, threads, output_suffix, bowtie_args=bowtie_args) Fastq.fastq.assert_any_call(sample, 1) Fastq.fastq.assert_any_call(sample, 2) b.run_bowtie.assert_called_once_with(fastq, fastq2, bam, threads, bowtie_args)
def test_run_bowtie_fastq2notexists(testdir, mock_testclass): sample = 'PORL2A' bam = sample + '.bam' fastq = sample + '_1.fastq' copyfile(Path(__file__).parent.joinpath('samples.txt'), fastq) fastq2 = sample + '_2.fastq' subprocess.run = MagicMock(side_effect=create_file) b.run_bowtie(fastq, None, bam, None, ()) call1 = ['bowtie2', '-S', ANY, '-U', fastq] call2 = ['samtools', 'view', '-b', '-o', ANY, ANY] call3 = ['samtools', 'sort', '-o', bam, ANY] subprocess.run.assert_any_call(call1, check=True) subprocess.run.assert_any_call(call2, check=True) subprocess.run.assert_any_call(call3, check=True) subprocess.run.assert_has_calls([ call(call1, check=True), call(call2, check=True), call(call3, check=True) ], True) assert subprocess.run.call_args_list[0].args[0][ 2] == subprocess.run.call_args_list[1].args[0][5] assert subprocess.run.call_args_list[1].args[0][ 4] == subprocess.run.call_args_list[2].args[0][4]
def test_bowtie_samples_second(testdir, mock_testclass): samples = Path(__file__).parent.joinpath('samples.txt') b.bowtie_sample = MagicMock() b.bowtie_samples(samples, index=1) b.bowtie_sample.assert_called_once_with('ASDURF', None, '', ())