annotate roundup/anypy/dbm_.py @ 6823:fe0091279f50
Refactor session db logging and key generation for sessions/otks
While I was working on the redis sessiondb stuff, I noticed that
log_wanrning, get_logger ... was duplicated. Also there was code to
generate a unique key for otks that was duplicated.
Changes:
creating new sessions_common.py and SessionsCommon class to provide
methods:
log_warning, log_info, log_debug, get_logger, getUniqueKey
getUniqueKey method is closer to the method used to make
session keys in client.py.
sessions_common.py now report when random_.py chooses a weak
random number generator. Removed same from rest.py.
get_logger reconciles all logging under
roundup.hyperdb.backends.<name of BasicDatabase class>
some backends used to log to root logger.
have BasicDatabase in other sessions_*.py modules inherit from
SessionCommon.
change logging to use log_* methods.
In addition:
remove unused imports reported by flake8 and other formatting
changes
modify actions.py, rest.py, templating.py to use getUniqueKey
method.
add tests for new methods
test_redis_session.py
swap out ModuleNotFoundError for ImportError to prevent crash in
python2 when redis is not present.
allow injection of username:password or just password into redis
connection URL. set pytest_redis_pw envirnment variable to password
or user:password when running test.
| author |
John Rouillard <rouilj@ieee.org> |
| date |
Sun, 07 Aug 2022 01:51:11 -0400 |
| parents |
d5da643b3d25 |
| children |
|
| rev |
line source |
4360
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
1 # In Python 3 the "anydbm" module was renamed to be "dbm" which is now a
|
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
2 # package containing the various implementations. The "wichdb" module's
|
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3 # whichdb() function was moved to the new "dbm" module.
|
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
4
|
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
5 try:
|
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
6 # old school first because <3 had a "dbm" module too...
|
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
7 import anydbm
|
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
8 from whichdb import whichdb
|
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
9 except ImportError:
|
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
10 # python 3+
|
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
11 import dbm as anydbm
|
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
12 whichdb = anydbm.whichdb
|