5c09a6acb15f2e8765e497f338d7e53a834e4581
[platform/upstream/pygobject2.git] / tests / test_overrides_pango.py
1 # -*- Mode: Python; py-indent-offset: 4 -*-
2 # vim: tabstop=4 shiftwidth=4 expandtab
3
4 import unittest
5
6 try:
7     from gi.repository import Pango
8     from gi.repository import PangoCairo
9 except ImportError:
10     Pango = None
11     PangoCairo = None
12
13
14 @unittest.skipUnless(Pango, 'Pango not available')
15 class TestPango(unittest.TestCase):
16
17     def test_default_font_description(self):
18         desc = Pango.FontDescription()
19         self.assertEqual(desc.get_variant(), Pango.Variant.NORMAL)
20
21     def test_font_description(self):
22         desc = Pango.FontDescription('monospace')
23         self.assertEqual(desc.get_family(), 'monospace')
24         self.assertEqual(desc.get_variant(), Pango.Variant.NORMAL)
25
26     def test_layout(self):
27         self.assertRaises(TypeError, Pango.Layout)
28         context = Pango.Context()
29         layout = Pango.Layout(context)
30         self.assertEqual(layout.get_context(), context)
31
32         layout.set_markup("Foobar")
33         self.assertEqual(layout.get_text(), "Foobar")
34
35     def test_break_keyword_escape(self):
36         # https://bugzilla.gnome.org/show_bug.cgi?id=697363
37         self.assertTrue(hasattr(Pango, 'break_'))
38         self.assertTrue(Pango.break_ is not None)
39
40     def test_context_get_metrics(self):
41         # Test default "language" argument
42         font_map = PangoCairo.font_map_get_default()
43         context = font_map.create_context()
44         desc = Pango.FontDescription('monospace')
45         metrics1 = context.get_metrics(desc)
46         metrics2 = context.get_metrics(desc, context.get_language())
47         self.assertEqual(metrics1.get_ascent(), metrics2.get_ascent())