123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import csv
- import io
- import subprocess
- import typing
- import unittest.mock
- import pytest
- from freesurfer_surface.__main__ import annotation_labels
- from conftest import ANNOTATION_FILE_PATH
- def check_rows(csv_rows: typing.List[str]):
- assert len(csv_rows) == 36 + 1
- assert csv_rows[0] == ['index', 'color', 'name']
- assert csv_rows[1] == ['0', '#190519', 'unknown']
- assert csv_rows[23] == ['22', '#dc1414', 'postcentral']
- assert csv_rows[25] == ['24', '#3c14dc', 'precentral']
- def test_annotation_labels_function(capsys):
- with unittest.mock.patch('sys.argv', ['', ANNOTATION_FILE_PATH]):
- annotation_labels()
- out, err = capsys.readouterr()
- assert not err
- check_rows(list(csv.reader(io.StringIO(out), delimiter='\t')))
- def test_annotation_labels_function_delimiter(capsys):
- with unittest.mock.patch('sys.argv', ['', '--delimiter', ',', ANNOTATION_FILE_PATH]):
- annotation_labels()
- out, err = capsys.readouterr()
- assert not err
- check_rows(list(csv.reader(io.StringIO(out), delimiter=',')))
- def test_annotation_labels_script():
- proc_info = subprocess.run(['freesurfer-annotation-labels', ANNOTATION_FILE_PATH],
- check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- assert not proc_info.stderr
- check_rows(list(csv.reader(io.StringIO(proc_info.stdout.decode()), delimiter='\t')))
|