1from test import test_support
2import unittest
3
4nis = test_support.import_module('nis')
5
6class NisTests(unittest.TestCase):
7    def test_maps(self):
8        try:
9            maps = nis.maps()
10        except nis.error, msg:
11            # NIS is probably not active, so this test isn't useful
12            self.skipTest(str(msg))
13        try:
14            # On some systems, this map is only accessible to the
15            # super user
16            maps.remove("passwd.adjunct.byname")
17        except ValueError:
18            pass
19
20        done = 0
21        for nismap in maps:
22            mapping = nis.cat(nismap)
23            for k, v in mapping.items():
24                if not k:
25                    continue
26                if nis.match(k, nismap) != v:
27                    self.fail("NIS match failed for key `%s' in map `%s'" % (k, nismap))
28                else:
29                    # just test the one key, otherwise this test could take a
30                    # very long time
31                    done = 1
32                    break
33            if done:
34                break
35
36def test_main():
37    test_support.run_unittest(NisTests)
38
39if __name__ == '__main__':
40    test_main()
41