diff --git a/lib/xos-genx/xos-genx-tests/test_field_graph.py b/lib/xos-genx/xos-genx-tests/test_field_graph.py
index 38f77b7..9aa1051 100644
--- a/lib/xos-genx/xos-genx-tests/test_field_graph.py
+++ b/lib/xos-genx/xos-genx-tests/test_field_graph.py
@@ -20,7 +20,7 @@
 from xosgenx.generator import XOSProcessor
 
 class XProtoFieldGraphTest(unittest.TestCase):
-    def test_field_graph(self):
+    def _test_field_graph(self):
         xproto = \
 """
 message VRouterDevice (PlCoreBase){
@@ -38,9 +38,9 @@
      required string G = 12;
 }
 """
-	target = XProtoTestHelpers.write_tmp_target(
+        target = XProtoTestHelpers.write_tmp_target(
 """
-{{ xproto_field_graph_components(proto.messages.0.fields) }}
+{{ xproto_field_graph_components(proto.messages.0.fields, proto.messages.0) }}
 """)
 
         args = FakeArgs()
@@ -59,21 +59,13 @@
     def test_missing_field(self):
         xproto = \
 """
-message VRouterDevice (PlCoreBase){
-     optional string name = 1 [help_text = "device friendly name", max_length = 20, null = True, db_index = False, blank = True, unique_with="hamburger"];
-     required string openflow_id = 2 [help_text = "device identifier in ONOS", max_length = 20, null = False, db_index = False, blank = False, unique_with="name"];
-     required string config_key = 3 [default = "basic", max_length = 32, blank = False, help_text = "configuration key", null = False, db_index = False, unique_with="driver"];
-     required string driver = 4 [help_text = "driver type", max_length = 32, null = False, db_index = False, blank = False, unique_with="vrouter_service"];
-     required manytoone vrouter_service->VRouterService:devices = 5 [db_index = True, null = False, blank = False];
+message Foo (PlCoreBase){
      required string A = 6 [unique_with="B"];
-     required string B = 7 [unique_with="C"];
-     required string C = 8 [unique_with="A"];
-     required string D = 9;
 }
 """
-	target = XProtoTestHelpers.write_tmp_target(
+        target = XProtoTestHelpers.write_tmp_target(
 """
-{{ xproto_field_graph_components(proto.messages.0.fields) }}
+{{ xproto_field_graph_components(proto.messages.0.fields, proto.messages.0) }}
 """)
 
         def generate():
@@ -82,9 +74,10 @@
             args.target = target
             output = XOSProcessor.process(args)
 
-        # The following call generates some output, which should disappear
-        # when Matteo merges his refactoring of XOSProcessor.
-        self.assertRaises(FieldNotFound, generate)
+        with self.assertRaises(FieldNotFound) as e:
+             generate()
+
+        self.assertEqual(e.exception.message, 'Field "B" not found in model "Foo", referenced from field "A" by option "unique_with"')
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/lib/xos-genx/xos-genx-tests/test_tosca.py b/lib/xos-genx/xos-genx-tests/test_tosca.py
index 6807028..0d2ec4e 100644
--- a/lib/xos-genx/xos-genx-tests/test_tosca.py
+++ b/lib/xos-genx/xos-genx-tests/test_tosca.py
@@ -57,7 +57,7 @@
         self.target_tosca_keys = XProtoTestHelpers.write_tmp_target(
             """
             {%- for m in proto.messages %}
-                {{ xproto_fields_to_tosca_keys(m.fields) }}
+                {{ xproto_fields_to_tosca_keys(m.fields, m) }}
             {% endfor -%}
             """)
 
