Esempio n. 1
0
    def test_styles_dont_contain_text_align_attribute(self):
        caption_set = DFXPReader().read(
            SAMPLE_DFXP_TO_RENDER_WITH_ONLY_DEFAULT_POSITIONING_INPUT)

        result = SinglePositioningDFXPWriter().write(caption_set)

        caption_set = DFXPReader().read(result)

        for _, style in caption_set.get_styles():
            self.assertFalse('text-align' in style)
Esempio n. 2
0
    def test_styles_dont_contain_text_align_attribute(self):
        caption_set = DFXPReader().read(
            SAMPLE_DFXP_TO_RENDER_WITH_ONLY_DEFAULT_POSITIONING_INPUT)

        result = SinglePositioningDFXPWriter().write(caption_set)

        caption_set = DFXPReader().read(result)

        for _, style in caption_set.get_styles():
            self.assertFalse('text-align' in style)
Esempio n. 3
0
    def test_styles_dont_contain_text_align_attribute(
            self, sample_dfxp_to_render_with_only_default_positioning_input):
        caption_set = DFXPReader().read(
            sample_dfxp_to_render_with_only_default_positioning_input)

        result = SinglePositioningDFXPWriter().write(caption_set)

        caption_set = DFXPReader().read(result)

        for _, style in caption_set.get_styles():
            assert 'text-align' not in style
Esempio n. 4
0
    def test_only_the_custom_region_is_created(self):
        caption_set = DFXPReader().read(
            SAMPLE_DFXP_TO_RENDER_WITH_ONLY_DEFAULT_POSITIONING_INPUT)

        new_region = Layout(alignment=Alignment(HorizontalAlignmentEnum.LEFT,
                                                VerticalAlignmentEnum.TOP))

        dfxp = SinglePositioningDFXPWriter(new_region).write(caption_set)
        # Using a different parser, because this preserves letter case
        # The output file is ok, but when parsing it, the "regular" parses
        # loses letter case.
        layout = BeautifulSoup(dfxp, features='xml').findChild('layout')

        self.assertEqual(len(layout.findChildren('region')), 1)

        region = layout.findChild('region')
        text_align = region['tts:textAlign']
        display_align = region['tts:displayAlign']

        internal_alignment = _create_internal_alignment(
            text_align, display_align)  # noqa
        self.assertEqual(internal_alignment.horizontal,
                         HorizontalAlignmentEnum.LEFT)  # noqa
        self.assertEqual(internal_alignment.vertical,
                         VerticalAlignmentEnum.TOP)  # noqa
Esempio n. 5
0
    def test_default_style_is_written_to_output_file(self):
        caption_set = DFXPReader(read_invalid_positioning=True).read(
            DFXP_WITH_TEMPLATED_STYLE.format(style_name="foxy_the_squirrel"))

        result = LegacyDFXPWriter().write(caption_set)

        self.assertEqual(result.count('foxy_the_squirrel'), 2)
Esempio n. 6
0
    def test_only_the_custom_region_is_referenced(
            self, sample_dfxp_to_render_with_only_default_positioning_input):
        caption_set = DFXPReader().read(
            sample_dfxp_to_render_with_only_default_positioning_input)

        # it's easier to copy this than create a new one
        new_region = deepcopy(DFXP_DEFAULT_REGION)
        new_region.alignment.horizontal = HorizontalAlignmentEnum.LEFT
        new_region.alignment.vertical = VerticalAlignmentEnum.TOP

        dfxp = SinglePositioningDFXPWriter(new_region).write(caption_set)

        soup = BeautifulSoup(dfxp, features='html.parser')

        # get the region_id created, and see it's the one referenced
        created_region_id = soup.find('region')['xml:id']

        referenced_region_ids = set()

        for elem in soup.findAll():
            if 'region' in elem.attrs:
                referenced_region_ids.add(elem.attrs['region'])

        assert len(referenced_region_ids) == 1
        assert referenced_region_ids.pop() == created_region_id
Esempio n. 7
0
    def test_only_the_default_region_is_created(self):
        caption_set = DFXPReader().read(
            SAMPLE_DFXP_TO_RENDER_WITH_ONLY_DEFAULT_POSITIONING_INPUT)

        dfxp = SinglePositioningDFXPWriter().write(caption_set)
        layout = BeautifulSoup(dfxp, features='html.parser').findChild(
            'layout')  # noqa

        self.assertEqual(len(layout.findChildren('region')), 1)
Esempio n. 8
0
    def test_default_style_is_written_to_output_file(
            self, sample_dfxp_with_templated_style):
        caption_set = DFXPReader(read_invalid_positioning=True).read(
            sample_dfxp_with_templated_style.format(
                style_name="foxy_the_squirrel"))

        result = LegacyDFXPWriter().write(caption_set)

        assert result.count('foxy_the_squirrel') == 2
Esempio n. 9
0
    def test_only_the_default_region_is_created(
            self, sample_dfxp_to_render_with_only_default_positioning_input):
        caption_set = DFXPReader().read(
            sample_dfxp_to_render_with_only_default_positioning_input)

        dfxp = SinglePositioningDFXPWriter().write(caption_set)
        layout = BeautifulSoup(dfxp,
                               features='html.parser').findChild('layout')

        assert len(layout.findChildren('region')) == 1
Esempio n. 10
0
    def test_only_the_default_region_is_referenced(self):
        caption_set = DFXPReader().read(
            SAMPLE_DFXP_TO_RENDER_WITH_ONLY_DEFAULT_POSITIONING_INPUT)

        dfxp = SinglePositioningDFXPWriter().write(caption_set)

        soup = BeautifulSoup(dfxp, features='html.parser')

        for elem in soup.findAll():
            if 'region' in elem.attrs:
                self.assertEqual(elem['region'], DFXP_DEFAULT_REGION_ID)
Esempio n. 11
0
    def test_only_the_default_region_is_referenced(
            self, sample_dfxp_to_render_with_only_default_positioning_input):
        caption_set = DFXPReader().read(
            sample_dfxp_to_render_with_only_default_positioning_input)

        dfxp = SinglePositioningDFXPWriter().write(caption_set)

        soup = BeautifulSoup(dfxp, features='html.parser')

        for elem in soup.findAll():
            if 'region' in elem.attrs:
                assert elem['region'] == DFXP_DEFAULT_REGION_ID
Esempio n. 12
0
    def test_only_the_specified_custom_attributes_are_created_for_the_region(
            self):  # noqa
        caption_set = DFXPReader().read(
            SAMPLE_DFXP_TO_RENDER_WITH_ONLY_DEFAULT_POSITIONING_INPUT)

        new_region = Layout(alignment=Alignment(HorizontalAlignmentEnum.LEFT,
                                                VerticalAlignmentEnum.TOP))

        dfxp = SinglePositioningDFXPWriter(new_region).write(caption_set)

        region = BeautifulSoup(dfxp).find('region')
        self.assertTrue('xml:id' in region.attrs)
        self.assertNotEqual(region.attrs['xml:id'], DFXP_DEFAULT_REGION_ID)
        self.assertEqual(len(region.attrs), 3)
Esempio n. 13
0
    def test_only_the_specified_custom_attributes_are_created_for_the_region(
            self, sample_dfxp_to_render_with_only_default_positioning_input):
        caption_set = DFXPReader().read(
            sample_dfxp_to_render_with_only_default_positioning_input)

        new_region = Layout(alignment=Alignment(HorizontalAlignmentEnum.LEFT,
                                                VerticalAlignmentEnum.TOP))

        dfxp = SinglePositioningDFXPWriter(new_region).write(caption_set)

        region = BeautifulSoup(dfxp).find('region')

        assert 'xml:id' in region.attrs
        assert region.attrs['xml:id'] != DFXP_DEFAULT_REGION_ID
        assert len(region.attrs) == 3
Esempio n. 14
0
    def test_only_the_custom_region_is_referenced(self):
        caption_set = DFXPReader().read(
            SAMPLE_DFXP_TO_RENDER_WITH_ONLY_DEFAULT_POSITIONING_INPUT)

        # it's easier to copy this than create a new one
        new_region = deepcopy(DFXP_DEFAULT_REGION)
        new_region.alignment.horizontal = HorizontalAlignmentEnum.LEFT
        new_region.alignment.vertical = VerticalAlignmentEnum.TOP

        dfxp = SinglePositioningDFXPWriter(new_region).write(caption_set)

        soup = BeautifulSoup(dfxp, features='html.parser')

        # get the region_id created, and see it's the one referenced
        created_region_id = soup.find('region')['xml:id']

        referenced_region_ids = set()

        for elem in soup.findAll():
            if 'region' in elem.attrs:
                referenced_region_ids.add(elem.attrs['region'])

        self.assertEqual(len(referenced_region_ids), 1)
        self.assertEqual(referenced_region_ids.pop(), created_region_id)
Esempio n. 15
0
    def test_only_the_custom_region_is_created(
            self, sample_dfxp_to_render_with_only_default_positioning_input):
        caption_set = DFXPReader().read(
            sample_dfxp_to_render_with_only_default_positioning_input)

        new_region = Layout(alignment=Alignment(HorizontalAlignmentEnum.LEFT,
                                                VerticalAlignmentEnum.TOP))

        dfxp = SinglePositioningDFXPWriter(new_region).write(caption_set)
        # Using a different parser, because this preserves letter case
        # The output file is ok, but when parsing it, the "regular" parses
        # loses letter case.
        layout = BeautifulSoup(dfxp, features='xml').findChild('layout')

        region = layout.findChild('region')
        text_align = region['tts:textAlign']
        display_align = region['tts:displayAlign']

        internal_alignment = _create_internal_alignment(
            text_align, display_align)

        assert len(layout.findChildren('region')) == 1
        assert internal_alignment.horizontal == HorizontalAlignmentEnum.LEFT
        assert internal_alignment.vertical == VerticalAlignmentEnum.TOP