Index: pyyaml/trunk/tests/test_resolver.py
===================================================================
--- pyyaml/trunk/tests/test_detector.py	(revision 136)
+++ pyyaml/trunk/tests/test_resolver.py	(revision 137)
@@ -4,7 +4,28 @@
 from yaml import *
 
-class TestDetector(test_appliance.TestAppliance):
+class MyLoader(Loader):
+    pass
 
-    def _testDetector(self, test_name, data_filename, detect_filename):
+class MyDumper(Dumper):
+    pass
+
+add_path_resolver(u'!root', [],
+        Loader=MyLoader, Dumper=MyDumper)
+
+add_path_resolver(u'!root/scalar', [], str,
+        Loader=MyLoader, Dumper=MyDumper)
+
+add_path_resolver(u'!root/key11/key12/*', ['key11', 'key12'],
+        Loader=MyLoader, Dumper=MyDumper)
+
+add_path_resolver(u'!root/key21/1/*', ['key21', 1],
+        Loader=MyLoader, Dumper=MyDumper)
+
+add_path_resolver(u'!root/key31/*/*/key14/map', ['key31', None, None, 'key14'], map,
+        Loader=MyLoader, Dumper=MyDumper)
+
+class TestResolver(test_appliance.TestAppliance):
+
+    def _testImplicitResolver(self, test_name, data_filename, detect_filename):
         node = None
         correct_tag = None
@@ -26,4 +47,38 @@
             raise
 
-TestDetector.add_tests('testDetector', '.data', '.detect')
+    def _testPathResolverLoader(self, test_name, data_filename, path_filename):
+        #print serialize_all(compose_all(file(data_filename, 'rb').read(), Loader=MyLoader))
+        nodes1 = compose_all(file(data_filename, 'rb').read(), Loader=MyLoader)
+        nodes2 = compose_all(file(path_filename, 'rb').read())
+        for node1, node2 in zip(nodes1, nodes2):
+            self.failUnlessEqual(self._convert(node1), self._convert(node2))
 
+    def _testPathResolverDumper(self, test_name, data_filename, path_filename):
+        for filename in [data_filename, path_filename]:
+            output = serialize_all(compose_all(file(filename, 'rb').read()), Dumper=MyDumper)
+            #print output
+            nodes1 = compose_all(output)
+            nodes2 = compose_all(file(data_filename, 'rb').read())
+            for node1, node2 in zip(nodes1, nodes2):
+                self.failUnlessEqual(self._convert(node1), self._convert(node2))
+
+    def _convert(self, node):
+        if isinstance(node, ScalarNode):
+            return node.tag, node.value
+        elif isinstance(node, SequenceNode):
+            value = []
+            for item in node.value:
+                value.append(self._convert(item))
+            return node.tag, value
+        elif isinstance(node, MappingNode):
+            value = []
+            for key in node.value:
+                item = node.value[key]
+                value.append((self._convert(key), self._convert(item)))
+            value.sort()
+            return node.tag, value
+
+TestResolver.add_tests('testImplicitResolver', '.data', '.detect')
+TestResolver.add_tests('testPathResolverLoader', '.data', '.path')
+TestResolver.add_tests('testPathResolverDumper', '.data', '.path')
+
