mirror of
https://gitlab.gnome.org/jwestman/blueprint-compiler.git
synced 2025-05-04 15:59:08 -04:00
tests: Add GTK directive error tests
This commit is contained in:
parent
f197e68589
commit
4cf966eafa
7 changed files with 11 additions and 4 deletions
|
@ -34,14 +34,17 @@ class GtkDirective(AstNode):
|
||||||
if self.tokens["version"] not in ["4.0"]:
|
if self.tokens["version"] not in ["4.0"]:
|
||||||
err = CompileError("Only GTK 4 is supported")
|
err = CompileError("Only GTK 4 is supported")
|
||||||
if self.tokens["version"].startswith("4"):
|
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:
|
else:
|
||||||
err.hint("Expected `using Gtk 4.0;`")
|
err.hint("Expected 'using Gtk 4.0;'")
|
||||||
raise err
|
raise err
|
||||||
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def gir_namespace(self):
|
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"])
|
return gir.get_namespace("Gtk", self.tokens["version"])
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -44,8 +44,6 @@ class UI(AstNode):
|
||||||
try:
|
try:
|
||||||
gir_ctx.add_namespace(self.children[GtkDirective][0].gir_namespace)
|
gir_ctx.add_namespace(self.children[GtkDirective][0].gir_namespace)
|
||||||
except CompileError as e:
|
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)
|
self._gir_errors.append(e)
|
||||||
|
|
||||||
for i in self.children[Import]:
|
for i in self.children[Import]:
|
||||||
|
|
1
tests/sample_errors/gtk_3.blp
Normal file
1
tests/sample_errors/gtk_3.blp
Normal file
|
@ -0,0 +1 @@
|
||||||
|
using Gtk 3.0;
|
1
tests/sample_errors/gtk_3.err
Normal file
1
tests/sample_errors/gtk_3.err
Normal file
|
@ -0,0 +1 @@
|
||||||
|
1,11,3,Only GTK 4 is supported
|
1
tests/sample_errors/gtk_exact_version.blp
Normal file
1
tests/sample_errors/gtk_exact_version.blp
Normal file
|
@ -0,0 +1 @@
|
||||||
|
using Gtk 4.6;
|
1
tests/sample_errors/gtk_exact_version.err
Normal file
1
tests/sample_errors/gtk_exact_version.err
Normal file
|
@ -0,0 +1 @@
|
||||||
|
1,11,3,Only GTK 4 is supported
|
|
@ -178,6 +178,8 @@ class TestSamples(unittest.TestCase):
|
||||||
self.assert_sample_error("duplicate_obj_id")
|
self.assert_sample_error("duplicate_obj_id")
|
||||||
self.assert_sample_error("enum_member_dne")
|
self.assert_sample_error("enum_member_dne")
|
||||||
self.assert_sample_error("filters_in_non_file_filter")
|
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("invalid_bool")
|
||||||
self.assert_sample_error("layout_in_non_widget")
|
self.assert_sample_error("layout_in_non_widget")
|
||||||
self.assert_sample_error("ns_not_imported")
|
self.assert_sample_error("ns_not_imported")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue