|
1 import os |
|
2 import pwd |
|
3 |
|
4 from logilab.common.pytest import PyTester |
|
5 |
|
6 def getlogin(): |
|
7 """avoid usinng os.getlogin() because of strange tty / stdin problems |
|
8 (man 3 getlogin) |
|
9 Another solution would be to use $LOGNAME, $USER or $USERNAME |
|
10 """ |
|
11 return pwd.getpwuid(os.getuid())[0] |
|
12 |
|
13 |
|
14 def update_parser(parser): |
|
15 login = getlogin() |
|
16 parser.add_option('-r', '--rebuild-database', dest='rebuild_db', |
|
17 default=False, action="store_true", |
|
18 help="remove tmpdb and rebuilds the test database") |
|
19 parser.add_option('-u', '--dbuser', dest='dbuser', action='store', |
|
20 default=login, help="database user") |
|
21 parser.add_option('-w', '--dbpassword', dest='dbpassword', action='store', |
|
22 default=login, help="database name") |
|
23 parser.add_option('-n', '--dbname', dest='dbname', action='store', |
|
24 default=None, help="database name") |
|
25 parser.add_option('--euser', dest='euser', action='store', |
|
26 default=login, help="esuer name") |
|
27 parser.add_option('--epassword', dest='epassword', action='store', |
|
28 default=login, help="euser's password' name") |
|
29 return parser |
|
30 |
|
31 |
|
32 class CustomPyTester(PyTester): |
|
33 def __init__(self, cvg, options): |
|
34 super(CustomPyTester, self).__init__(cvg, options) |
|
35 if options.rebuild_db: |
|
36 os.unlink('tmpdb') |
|
37 os.unlink('tmpdb-template') |