コード例 #1
0
    def test_font_name_setter(self):
        # Test setter in initialization
        vg = VisualGenerator(font_name='Noto Serif CJK SC')
        self.assertEqual(vg._font_name, 'Noto Serif CJK SC')
        self.assertEqual(vg._font_face.ft_face.family_name,
                         'Noto Serif CJK SC')
        self.assertEqual(vg._font_face.ft_face.style_name, 'Regular')

        # Test setter after initialization
        vg.font_name = 'Noto Serif CJK TC'
        self.assertEqual(vg._font_name, 'Noto Serif CJK TC')
        self.assertEqual(vg._font_face.ft_face.family_name,
                         'Noto Serif CJK TC')
        self.assertEqual(vg._font_face.ft_face.style_name, 'Regular')

        # Test exception
        with self.assertRaises(ValueError):
            vg = VisualGenerator(font_name='Non Exists Font Name')
        with self.assertRaises(ValueError):
            vg.font_name = 'Non Exists Font Name'

        # Test interference
        vg.font_style = 'Light'
        self.assertEqual(vg._font_face.ft_face.style_name, 'Light')
        vg.font_name = 'Noto Sans CJK JP'
        self.assertEqual(vg._font_face.ft_face.style_name, 'Light')
コード例 #2
0
    def test_font_style_setter(self):
        # Test setter in initialization
        vg = VisualGenerator(font_style='Bold')
        self.assertEqual(vg._font_style, 'Bold')
        self.assertEqual(vg._font_face.ft_face.family_name, 'Noto Sans CJK SC')
        self.assertEqual(vg._font_face.ft_face.style_name, 'Bold')

        # Test setter after initialization
        vg.font_style = 'Thin'
        self.assertEqual(vg._font_style, 'Thin')
        self.assertEqual(vg._font_face.ft_face.family_name, 'Noto Sans CJK SC')
        self.assertEqual(vg._font_face.ft_face.style_name, 'Thin')

        # TODO: Add checking so that exception raises when style not found!
        # Test that non-exist font style results in default style
        vg.font_style = '123'
        self.assertEqual(vg._font_style, '123')
        self.assertEqual(vg._font_face.ft_face.family_name, 'Noto Sans CJK SC')
        self.assertEqual(vg._font_face.ft_face.style_name, 'Regular')

        # Test interference
        vg.font_name = 'Noto Serif CJK SC'
        self.assertEqual(vg._font_face.ft_face.family_name,
                         'Noto Serif CJK SC')
        vg.font_style = 'SemiBold'
        self.assertEqual(vg._font_face.ft_face.family_name,
                         'Noto Serif CJK SC')