1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
#!/usr/bin/python
from unittest import TestCase, main
from config import CONF_DIR, NUAUTH_VERSION
from common import createClientWithCerts, connectClient
from os import path
from inl_tests.replace_file import ReplaceFile
from logging import warning
from nuauth import Nuauth
from nuauth_conf import NuauthConf
ECHO_BIN = '/bin/echo'
SCRIPT_UP = path.join(CONF_DIR, "user-up.sh")
SCRIPT_DOWN = path.join(CONF_DIR, "user-down.sh")
MODE = 0111
SCRIPT = "#!/bin/sh\necho \"SCRIPT %s COUNT=$# TEXT >>>$@<<<\"\n"
class TestScript(TestCase):
def setUp(self):
# Prepare our new scripts
self.script_up = ReplaceFile(SCRIPT_UP, SCRIPT % "UP", MODE)
self.script_down = ReplaceFile(SCRIPT_DOWN, SCRIPT % "DOWN", MODE)
self.script_up.install()
self.script_down.install()
# Create nuauth
config = NuauthConf()
config["nuauth_user_session_logs_module"] = '"script"'
self.nuauth = Nuauth(config)
def tearDown(self):
# Restore scripts and nuauth config
self.script_up.desinstall()
self.script_down.desinstall()
self.nuauth.stop()
def checkScript(self, match):
warning("checkScript(%r)" % match)
for line in self.nuauth.readlines(total_timeout=2.0):
if line == match:
return True
return False
def testLogin(self):
# Client login
client = createClientWithCerts()
self.assert_(connectClient(client))
# Check log output
match = "SCRIPT UP COUNT=2 TEXT >>>%s %s<<<" \
% (client.username, client.ip)
self.assert_(self.checkScript(match))
# Client logout
client.stop()
match = "SCRIPT DOWN COUNT=2 TEXT >>>%s %s<<<" \
% (client.username, client.ip)
self.assert_(self.checkScript(match))
if __name__ == "__main__":
print "Test nuauth module 'log_script'"
main()
|