def test_empty_string(self): """Should return an empty list.""" text = '' wrap = 10 expected = [] observed = ImageContent._wrap_text(text=text, wrap_characters=wrap) self.assertEqual(expected, observed)
def test_no_newline_greater_than_wrap_char(self): """Should return text broken on the wrap character amount.""" text = 'This is some text with no internal punctuation.' wrap = int(len(text) / 2) expected = ['This is some text with', 'no internal', 'punctuation.'] observed = ImageContent._wrap_text(text=text, wrap_characters=wrap) self.assertEqual(expected, observed)
def test_newline_less_than_wrap_char(self): """Should return text broken on the internal punctuation.""" text = 'This is some text. It has internal punctuation.' wrap = int(len(text) + 1) expected = ['This is some text.', ' ', 'It has internal punctuation.'] observed = ImageContent._wrap_text(text=text, wrap_characters=wrap) self.assertEqual(expected, observed)
def test_no_newline_less_than_wrap_char(self): """Should return text as a list with no breaks.""" text = 'This is some text with no internal punctuation.' wrap = int(len(text) + 1) expected = [text] observed = ImageContent._wrap_text(text=text, wrap_characters=wrap) self.assertEqual(expected, observed)
def test_read_survey_image_content_values(self): """Should return content values with expected keys.""" expected = {'item_type', 'file_name_column', 'text_label_column', 'text_hint_column', 'nest_image_column', } settings = {2: {'language': 'english', 'item_type': 'text', 'file_name_column': 'name', 'text_label_column': 'label', 'text_hint_column': 'hint', 'nest_image_column': 'image'}} sheet = self.xlsform1_workbook.sheet_by_name(sheet_name='survey') column_locations = ImageContent._locate_image_content_columns( survey_sheet=sheet, settings_values=settings[2]) observed = ImageContent._read_survey_image_content_values( survey_sheet=sheet, column_locations=column_locations) self.assertEqual(expected, set(observed[0].keys()))
def test_newline_greater_than_wrap_char(self): """Should return text broken at both wrap char and punctuation.""" text = 'This is some text. It has internal punctuation.' wrap = int(len(text) / 3) expected = [ 'This is some', 'text.', ' ', 'It has', 'internal', 'punctuation.'] observed = ImageContent._wrap_text(text=text, wrap_characters=wrap) self.assertEqual(expected, observed)
def test_read_from_image_settings(self): """Should return expected sample image content values.""" settings = ImageSettings.read( xlsform_workbook=self.xlsform1_workbook) observed = ImageContent.read( xlsform_workbook=self.xlsform1_workbook, settings=settings[2]) image_content = observed['image_content'] self.assertEqual('nl_visit', image_content[0]['file_name_column']) self.assertEqual(['Subject ID'], image_content[2]['text_label_column'])
def setUp(self): super().setUp() # Must be run level since the tests modify this complex object. settings = ImageContent.read( xlsform_workbook=self.xlsform1_workbook, settings=self.template[2]) settings['image_content'] = [x for x in settings['image_content'] if x['file_name_column'] == 'da2d10ye'] self.settings = settings
def test_write_single_language(self): """Should create the expected number of images.""" self.clean_test_output_folder = True settings = ImageSettings.read(xlsform_workbook=self.xlsform1_workbook) add_content = ImageContent.read( xlsform_workbook=self.xlsform1_workbook, settings=settings[2]) Images.write(self.xlsform1, add_content) output_files = os.listdir(self.test_output_folder) self.assertEqual(184, len(output_files))
def test_locate_image_content_columns(self): """Should return the column index of the image content columns.""" expected = {'item_type': 0, 'file_name_column': 1, 'text_label_column': 2, 'text_hint_column': 3, 'nest_image_column': 4} settings = {2: {'language': 'english', 'file_name_column': 'name', 'text_label_column': 'label', 'text_hint_column': 'hint', 'nest_image_column': 'image'}} sheet = self.xlsform1_workbook.sheet_by_name(sheet_name='survey') observed = ImageContent._locate_image_content_columns( survey_sheet=sheet, settings_values=settings[2]) self.assertEqual(expected, observed)