tests: Add GTK directive error tests

This commit is contained in:
James Westman 2022-03-28 14:18:17 -05:00
parent f197e68589
commit 4cf966eafa
7 changed files with 11 additions and 4 deletions

View file

@ -34,14 +34,17 @@ class GtkDirective(AstNode):
if self.tokens["version"] not in ["4.0"]:
err = CompileError("Only GTK 4 is supported")
if self.tokens["version"].startswith("4"):
err.hint("Expected the GIR version, not an exact version number. Use `using Gtk 4.0;`.")
err.hint("Expected the GIR version, not an exact version number. Use 'using Gtk 4.0;'.")
else:
err.hint("Expected `using Gtk 4.0;`")
err.hint("Expected 'using Gtk 4.0;'")
raise err
@property
def gir_namespace(self):
# validate the GTK version first to make sure the more specific error
# message is emitted
self.gtk_version()
return gir.get_namespace("Gtk", self.tokens["version"])

View file

@ -44,8 +44,6 @@ class UI(AstNode):
try:
gir_ctx.add_namespace(self.children[GtkDirective][0].gir_namespace)
except CompileError as e:
e.start = self.children[GtkDirective][0].group.start
e.end = self.children[GtkDirective][0].group.end
self._gir_errors.append(e)
for i in self.children[Import]:

View file

@ -0,0 +1 @@
using Gtk 3.0;

View file

@ -0,0 +1 @@
1,11,3,Only GTK 4 is supported

View file

@ -0,0 +1 @@
using Gtk 4.6;

View file

@ -0,0 +1 @@
1,11,3,Only GTK 4 is supported

View file

@ -178,6 +178,8 @@ class TestSamples(unittest.TestCase):
self.assert_sample_error("duplicate_obj_id")
self.assert_sample_error("enum_member_dne")
self.assert_sample_error("filters_in_non_file_filter")
self.assert_sample_error("gtk_3")
self.assert_sample_error("gtk_exact_version")
self.assert_sample_error("invalid_bool")
self.assert_sample_error("layout_in_non_widget")
self.assert_sample_error("ns_not_imported")