1#!/usr/bin/python
2#
3# Upon a winbindd authentication, test that an info3 record is cached in
4# netsamlogon_cache.tdb and cache records are removed from winbindd_cache.tdb
5#
6
7import comfychair, stf
8from samba import tdb, winbind
9
10#
11# We want to implement the following test on a win2k native mode domain.
12#
13# 1. trash netsamlogon_cache.tdb
14# 2. wbinfo -r DOMAIN\Administrator                    [FAIL]
15# 3. wbinfo --auth-crap DOMAIN\Administrator%password  [PASS]
16# 4. wbinfo -r DOMAIN\Administrator                    [PASS]
17#
18# Also for step 3 we want to try 'wbinfo --auth-smbd' and
19# 'wbinfo --auth-plaintext'
20#
21
22#
23# TODO: To implement this test we need to be able to
24#
25#  - pass username%password combination for an invidivual winbindd request
26#    (so we can get the administrator SID so we can clear the info3 cache)
27#
28#  - start/restart winbindd (to trash the winbind cache)
29#
30#  - from samba import dynconfig (to find location of info3 cache)
31#
32#  - be able to modify the winbindd cache (to set/reset individual winbind
33#    cache entries)
34#
35#  - have --auth-crap present in HEAD
36#
37
38class WinbindAuthCrap(comfychair.TestCase):
39    def runtest(self):
40        raise comfychair.NotRunError, "not implemented"
41
42class WinbindAuthSmbd(comfychair.TestCase):
43    def runtest(self):
44        # Grr - winbindd in HEAD doesn't contain the auth_smbd function
45        raise comfychair.NotRunError, "no auth_smbd in HEAD"
46
47class WinbindAuthPlaintext(comfychair.TestCase):
48    def runtest(self):
49        raise comfychair.NotRunError, "not implemented"
50
51tests = [WinbindAuthCrap, WinbindAuthSmbd, WinbindAuthPlaintext]
52
53if __name__ == "__main__":
54    comfychair.main(tests)
55