view 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
line wrap: on
line source

# In Python 3 the "anydbm" module was renamed to be "dbm" which is now a
# package containing the various implementations. The "wichdb" module's
# whichdb() function was moved to the new "dbm" module.

try:
    # old school first because <3 had a "dbm" module too...
    import anydbm
    from whichdb import whichdb
except ImportError:
    # python 3+
    import dbm as anydbm
    whichdb = anydbm.whichdb

Roundup Issue Tracker: http://roundup-tracker.org/