diff --git a/gio/gdbus-2.0/codegen/codegen_rst.py b/gio/gdbus-2.0/codegen/codegen_rst.py index 026ad675d..303e547cf 100644 --- a/gio/gdbus-2.0/codegen/codegen_rst.py +++ b/gio/gdbus-2.0/codegen/codegen_rst.py @@ -142,7 +142,7 @@ class RstCodeGenerator: else: access = "readable" res += [ - ".. _{title}:", + f".. _{title}:", "", title, "^" * len(title), @@ -218,7 +218,7 @@ class RstCodeGenerator: for m in iface.methods: title = f"{iface.name}.{m.name}" res += [ - ".. _{title}:", + f".. _{title}:", "", title, "^" * len(title), @@ -296,7 +296,7 @@ class RstCodeGenerator: for s in iface.signals: title = f"{iface.name}::{s.name}" res += [ - ".. _{title}:", + f".. _{title}:", "", title, "^" * len(title), diff --git a/gio/tests/codegen.py b/gio/tests/codegen.py index e27a412ba..22cf356ce 100644 --- a/gio/tests/codegen.py +++ b/gio/tests/codegen.py @@ -520,6 +520,123 @@ G_END_DECLS rst = f.readlines() self.assertTrue(len(rst) != 0) + def test_generate_rst_method(self): + """Test generating a method documentation with the rst generator.""" + xml_contents = """ + + + + + + + """ + res = self.runCodegenWithInterface( + xml_contents, + "--generate-rst", + "test", + ) + self.assertEqual("", res.err) + self.assertEqual("", res.out) + with open("test-org.project.Bar.Frobnicator.rst", "r") as f: + rst = f.read() + self.assertIn(""" +------- +Methods +------- + +.. _org.project.Bar.Frobnicator.RandomMethod: + +org.project.Bar.Frobnicator.RandomMethod +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:: + + RandomMethod () + + +A random test method.""", rst) + + def test_generate_rst_signal(self): + """Test generating a signal documentation with the rst generator.""" + xml_contents = """ + + + + + + + """ + res = self.runCodegenWithInterface( + xml_contents, + "--generate-rst", + "test", + ) + self.assertEqual("", res.err) + self.assertEqual("", res.out) + with open("test-org.project.Bar.Frobnicator.rst", "r") as f: + rst = f.read() + self.assertIn(""" +------- +Signals +------- + +.. _org.project.Bar.Frobnicator::RandomSignal: + +org.project.Bar.Frobnicator::RandomSignal +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:: + + RandomSignal () + + +A random test signal.""", rst) + + def test_generate_rst_property(self): + """Test generating a property documentation with the rst generator.""" + xml_contents = """ + + + + + + + """ + res = self.runCodegenWithInterface( + xml_contents, + "--generate-rst", + "test", + ) + self.assertEqual("", res.err) + self.assertEqual("", res.out) + with open("test-org.project.Bar.Frobnicator.rst", "r") as f: + rst = f.read() + self.assertIn(""" +---------- +Properties +---------- + +.. _org.project.Bar.Frobnicator:RandomProperty: + +org.project.Bar.Frobnicator:RandomProperty +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:: + + RandomProperty readable s + + +A random test property.""", rst) + @unittest.skipIf(on_win32(), "requires /dev/stdout") def test_glib_min_required_invalid(self): """Test running with an invalid --glib-min-required."""