1
# -*- coding: utf-8 -*-
3
# Copyright (C) 2007 Matthew Good <trac@matt-good.net>
5
# "THE BEER-WARE LICENSE" (Revision 42):
6
# <trac@matt-good.net> wrote this file. As long as you retain this notice you
7
# can do whatever you want with this stuff. If we meet some day, and you think
8
# this stuff is worth it, you can buy me a beer in return. Matthew Good
10
# Author: Matthew Good <trac@matt-good.net>
17
from trac.test import EnvironmentStub, Mock
19
from acct_mgr.db import SessionStore
21
class _BaseTestCase(unittest.TestCase):
23
#self.basedir = os.path.realpath(tempfile.mkdtemp())
24
self.env = EnvironmentStub(enable=['trac.*', 'acct_mgr.*'])
25
self.env.config.set('account-manager', 'password_store',
27
self.store = SessionStore(self.env)
28
#self.env.path = os.path.join(self.basedir, 'trac-tempenv')
29
#os.mkdir(self.env.path)
31
def test_get_users(self):
32
db = self.env.get_db_cnx()
34
cursor.executemany("INSERT INTO session_attribute "
35
"(sid,authenticated,name,value) "
36
"VALUES (%s,1,'password',%s)",
40
self.assertEqual(['a', 'b', 'c'], list(self.store.get_users()))
42
def test_has_user(self):
43
db = self.env.get_db_cnx()
45
cursor.execute("INSERT INTO session_attribute "
46
"(sid,authenticated,name,value) "
47
"VALUES (%s,1,'password',%s)",
50
self.assertFalse(self.store.has_user('foo'))
51
self.assertTrue(self.store.has_user('bar'))
53
def test_create_user(self):
54
self.assertFalse(self.store.has_user('foo'))
55
self.store.set_password('foo', 'password')
56
self.assertTrue(self.store.has_user('foo'))
58
def test_update_password(self):
59
self.store.set_password('foo', 'pass1')
60
self.assertFalse(self.store.check_password('foo', 'pass2'))
61
self.store.set_password('foo', 'pass2')
62
self.assertTrue(self.store.check_password('foo', 'pass2'))
64
def test_delete_user(self):
65
self.store.set_password('foo', 'password')
66
self.assertTrue(self.store.has_user('foo'))
67
self.assertTrue(self.store.delete_user('foo'))
68
self.assertFalse(self.store.has_user('foo'))
70
def test_delete_nonexistant_user(self):
71
self.assertFalse(self.store.has_user('foo'))
72
self.assertFalse(self.store.delete_user('foo'))
75
class HtDigestTestCase(_BaseTestCase):
77
_BaseTestCase.setUp(self)
78
self.env.config.set('account-manager', 'hash_method',
80
self.env.config.set('account-manager', 'htdigest_realm',
84
class HtPasswdTestCase(_BaseTestCase):
86
_BaseTestCase.setUp(self)
87
self.env.config.set('account-manager', 'hash_method',
92
suite = unittest.TestSuite()
93
suite.addTest(unittest.makeSuite(HtDigestTestCase, 'test'))
94
suite.addTest(unittest.makeSuite(HtPasswdTestCase, 'test'))
97
if __name__ == '__main__':
98
unittest.main(defaultTest='suite')