blob: 55dd32c7e013415e0a86f39415416ecbe57585e5 [file] [log] [blame]
Thomas Wouters89f507f2006-12-13 04:49:30 +00001from test.test_support import verbose, run_unittest
2import unittest
Barry Warsaw3236b331996-12-11 01:01:38 +00003import nis
4
Thomas Wouters89f507f2006-12-13 04:49:30 +00005class NisTests(unittest.TestCase):
6 def test_maps(self):
7 try:
8 maps = nis.maps()
Guido van Rossumb940e112007-01-10 16:19:56 +00009 except nis.error as msg:
Thomas Wouters89f507f2006-12-13 04:49:30 +000010 # NIS is probably not active, so this test isn't useful
11 if verbose:
12 self.fail("(failing because of verbose mode) %s" % msg)
13 return
14 try:
15 # On some systems, this map is only accessible to the
16 # super user
17 maps.remove("passwd.adjunct.byname")
18 except ValueError:
19 pass
Barry Warsaw4c4d5ce1997-05-15 18:27:49 +000020
Thomas Wouters89f507f2006-12-13 04:49:30 +000021 done = 0
22 for nismap in maps:
23 mapping = nis.cat(nismap)
24 for k, v in mapping.items():
25 if not k:
26 continue
27 if nis.match(k, nismap) != v:
28 self.fail("NIS match failed for key `%s' in map `%s'" % (k, nismap))
29 else:
30 # just test the one key, otherwise this test could take a
31 # very long time
32 done = 1
33 break
34 if done:
35 break
36
37def test_main():
38 run_unittest(NisTests)
39
40if __name__ == '__main__':
41 test_main()