def _word_split_test(self): """ Test the _word_split() method """ # GIVEN: A line of text renderer = Renderer() given_line = 'beginning asdf \n end asdf' expected_words = ['beginning', 'asdf', 'end', 'asdf'] # WHEN: Split the line based on word split rules result_words = renderer._words_split(given_line) # THEN: The word lists should be the same. self.assertListEqual(result_words, expected_words)
def _get_start_tags_test(self): """ Test the _get_start_tags() method """ # GIVEN: A new renderer instance. Broken raw_text (missing closing tags). renderer = Renderer() given_raw_text = '{st}{r}Text text text' expected_tuple = ('{st}{r}Text text text{/r}{/st}', '{st}{r}', '<strong><span style="-webkit-text-fill-color:red">') # WHEN: The renderer converts the start tags result = renderer._get_start_tags(given_raw_text) # THEN: Check if the correct tuple is returned. self.assertEqual(result, expected_tuple), 'A tuple should be returned containing the text with correct ' \ 'tags, the opening tags, and the opening html tags.'
def format_slide_blank_after_split_test(self): """ Test that a line with blanks before the logical split at handled """ # GIVEN: A line of with a space after the logical split renderer = Renderer() renderer.empty_height = 25 given_line = '\n[---] \n' expected_words = ['<br>[---] '] service_item = ServiceItem(None) # WHEN: Split the line based on word split rules result_words = renderer.format_slide(given_line, service_item) # THEN: The blanks have been removed. self.assertListEqual(result_words, expected_words)
def format_slide_logical_split_test(self): """ Test that a line with text and a logic break does not break the renderer just returns the input """ # GIVEN: A line of with a space text and the logical split renderer = Renderer() renderer.empty_height = 25 given_line = 'a\n[---]\nb' expected_words = ['a<br>[---]<br>b'] service_item = ServiceItem(None) # WHEN: Split the line based on word split rules result_words = renderer.format_slide(given_line, service_item) # THEN: The word lists should be the same. self.assertListEqual(result_words, expected_words)
def test_format_slide_blank_after_split(self): """ Test that a line with blanks before the logical split at handled """ # GIVEN: A line of with a space after the logical split renderer = Renderer() renderer.empty_height = 480 given_line = '\n[---] \n' expected_words = ['<br>[---] '] service_item = ServiceItem(None) # WHEN: Split the line based on word split rules result_words = renderer.format_slide(given_line, service_item) # THEN: The blanks have been removed. self.assertListEqual(result_words, expected_words)
def test_format_slide_logical_split(self): """ Test that a line with text and a logic break does not break the renderer just returns the input """ # GIVEN: A line of with a space text and the logical split renderer = Renderer() renderer.empty_height = 480 given_line = 'a\n[---]\nb' expected_words = ['a<br>[---]<br>b'] service_item = ServiceItem(None) # WHEN: Split the line based on word split rules result_words = renderer.format_slide(given_line, service_item) # THEN: The word lists should be the same. self.assertListEqual(result_words, expected_words)
def test_set_text_rectangle(self, mock_outline_css, mock_lyrics_css, mock_webview): """ Test set_text_rectangle returns a proper html string """ # GIVEN: test object and data mock_lyrics_css.return_value = ' FORMAT CSS; ' mock_outline_css.return_value = ' OUTLINE CSS; ' theme_data = ThemeXML() theme_data.font_main_name = 'Arial' theme_data.font_main_size = 20 theme_data.font_main_color = '#FFFFFF' theme_data.font_main_outline_color = '#FFFFFF' main = QtCore.QRect(10, 10, 1280, 900) foot = QtCore.QRect(10, 1000, 1260, 24) renderer = Renderer() # WHEN: Calling method renderer._set_text_rectangle(theme_data=theme_data, rect_main=main, rect_footer=foot) # THEN: QtWebKitWidgets should be called with the proper string mock_webview.setHtml.called_with(CSS_TEST_ONE, 'Should be the same')
def test_default_screen_layout(self): """ Test the default layout calculations """ # GIVEN: A new renderer instance. renderer = Renderer() # WHEN: given the default screen size has been created. # THEN: The renderer have created a default screen. self.assertEqual(renderer.width, 1024, 'The base renderer should be a live controller') self.assertEqual(renderer.height, 768, 'The base renderer should be a live controller') self.assertEqual(renderer.screen_ratio, 0.75, 'The base renderer should be a live controller') self.assertEqual(renderer.footer_start, 691, 'The base renderer should be a live controller')