blob: eb4284d3ea1324ac61d0a80e2ad6df6d51214437 [file] [log] [blame]
Benjamin Petersonee8712c2008-05-20 21:35:26 +00001from test import support
Thomas Wouters89f507f2006-12-13 04:49:30 +00002import unittest
Alexandre Vassalottib66c67d2009-07-22 04:27:34 +00003import sys
R. David Murraya21e4ca2009-03-31 23:16:50 +00004
5# Skip test if nis module does not exist.
6nis = support.import_module('nis')
Barry Warsaw3236b331996-12-11 01:01:38 +00007
Alexandre Vassalottib66c67d2009-07-22 04:27:34 +00008if sys.platform.startswith("sunos"):
9 raise unittest.SkipTest("test_nis hangs on Solaris")
Benjamin Petersone9ea19e2008-08-19 23:02:38 +000010
Thomas Wouters89f507f2006-12-13 04:49:30 +000011class NisTests(unittest.TestCase):
12 def test_maps(self):
13 try:
14 maps = nis.maps()
Guido van Rossumb940e112007-01-10 16:19:56 +000015 except nis.error as msg:
Thomas Wouters89f507f2006-12-13 04:49:30 +000016 # NIS is probably not active, so this test isn't useful
Benjamin Petersonee8712c2008-05-20 21:35:26 +000017 if support.verbose:
Christian Heimesd5e2b6f2008-03-19 21:50:51 +000018 print("Test Skipped:", msg)
Benjamin Petersone549ead2009-03-28 21:42:05 +000019 # Can't raise SkipTest as regrtest only recognizes the exception
Christian Heimesd5e2b6f2008-03-19 21:50:51 +000020 # import time.
Thomas Wouters89f507f2006-12-13 04:49:30 +000021 return
22 try:
23 # On some systems, this map is only accessible to the
24 # super user
25 maps.remove("passwd.adjunct.byname")
26 except ValueError:
27 pass
Barry Warsaw4c4d5ce1997-05-15 18:27:49 +000028
Thomas Wouters89f507f2006-12-13 04:49:30 +000029 done = 0
30 for nismap in maps:
31 mapping = nis.cat(nismap)
32 for k, v in mapping.items():
33 if not k:
34 continue
35 if nis.match(k, nismap) != v:
36 self.fail("NIS match failed for key `%s' in map `%s'" % (k, nismap))
37 else:
38 # just test the one key, otherwise this test could take a
39 # very long time
40 done = 1
41 break
42 if done:
43 break
44
45def test_main():
Benjamin Petersonee8712c2008-05-20 21:35:26 +000046 support.run_unittest(NisTests)
Thomas Wouters89f507f2006-12-13 04:49:30 +000047
48if __name__ == '__main__':
49 test_main()