blob: a3a3c260e379da646daf47b70709a843f4b5d541 [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
Benjamin Petersone9ea19e2008-08-19 23:02:38 +00008
Thomas Wouters89f507f2006-12-13 04:49:30 +00009class NisTests(unittest.TestCase):
10 def test_maps(self):
11 try:
12 maps = nis.maps()
Guido van Rossumb940e112007-01-10 16:19:56 +000013 except nis.error as msg:
Thomas Wouters89f507f2006-12-13 04:49:30 +000014 # NIS is probably not active, so this test isn't useful
Zachary Ware9fe6d862013-12-08 00:20:35 -060015 self.skipTest(str(msg))
Thomas Wouters89f507f2006-12-13 04:49:30 +000016 try:
17 # On some systems, this map is only accessible to the
18 # super user
19 maps.remove("passwd.adjunct.byname")
20 except ValueError:
21 pass
Barry Warsaw4c4d5ce1997-05-15 18:27:49 +000022
Thomas Wouters89f507f2006-12-13 04:49:30 +000023 done = 0
24 for nismap in maps:
25 mapping = nis.cat(nismap)
26 for k, v in mapping.items():
27 if not k:
28 continue
29 if nis.match(k, nismap) != v:
30 self.fail("NIS match failed for key `%s' in map `%s'" % (k, nismap))
31 else:
32 # just test the one key, otherwise this test could take a
33 # very long time
34 done = 1
35 break
36 if done:
37 break
38
39def test_main():
Benjamin Petersonee8712c2008-05-20 21:35:26 +000040 support.run_unittest(NisTests)
Thomas Wouters89f507f2006-12-13 04:49:30 +000041
42if __name__ == '__main__':
43 test_main()