diff roundup/test/memorydb.py @ 6937:b1130680d4ed

flake8 fixes
author John Rouillard <rouilj@ieee.org>
date Thu, 08 Sep 2022 14:06:22 -0400
parents 2ce855803633
children 506c86823abb
line wrap: on
line diff
--- a/roundup/test/memorydb.py	Thu Sep 08 13:50:36 2022 -0400
+++ b/roundup/test/memorydb.py	Thu Sep 08 14:06:22 2022 -0400
@@ -21,16 +21,17 @@
 
 default_prefix = '../../share/roundup/templates/classic'
 
+
 def new_config(debug=False, prefix=default_prefix):
     if not prefix.startswith('/'):
-        prefix = os.path.join (os.path.dirname(__file__), prefix)
+        prefix = os.path.join(os.path.dirname(__file__), prefix)
     config = configuration.CoreConfig()
     config.detectors = configuration.UserConfig(
         os.path.join(prefix, "detectors/config.ini"))
     config.ext = configuration.UserConfig(
         os.path.join(prefix, "extensions/config.ini"))
     config.DATABASE = "db"
-    #config.logging = MockNull()
+    # config.logging = MockNull()
     # these TRACKER_WEB and MAIL_DOMAIN values are used in mailgw tests
     if debug:
         config.LOGGING_LEVEL = "DEBUG"
@@ -38,6 +39,7 @@
     config.TRACKER_WEB = "http://tracker.example/cgi-bin/roundup.cgi/bugs/"
     return config
 
+
 def create(journaltag, create=True, debug=False, prefix=default_prefix):
     # "Nuke" in-memory db
     db_nuke('')
@@ -46,7 +48,7 @@
 
     # load standard schema
     if not prefix.startswith('/'):
-        prefix = os.path.join (os.path.dirname(__file__), prefix)
+        prefix = os.path.join(os.path.dirname(__file__), prefix)
 
     schema = os.path.join(prefix, 'schema.py')
     vars = hyperdb.__dict__
@@ -60,7 +62,7 @@
 
     initial_data = os.path.join(prefix, 'initial_data.py')
     vars = dict(db=db, admin_email='admin@test.com',
-        adminpw=password.Password('sekrit'))
+                adminpw=password.Password('sekrit'))
     fd = open(initial_data)
     exec(compile(fd.read(), initial_data, 'exec'), vars)
     fd.close()
@@ -68,7 +70,7 @@
     # load standard detectors
     dirname = os.path.join(prefix, 'detectors')
     for fn in os.listdir(dirname):
-        if not fn.endswith('.py'): continue
+        if not fn.endswith('.py'): continue                       # noqa: E701
         vars = {}
         with open(os.path.join(dirname, fn)) as fd:
             exec(compile(fd.read(),
@@ -108,7 +110,8 @@
     '''
     if create:
         db.user.create(username="fred", roles='User',
-            password=password.Password('sekrit'), address='fred@example.com')
+                       password=password.Password('sekrit'),
+                       address='fred@example.com')
 
     db.security.addPermissionToRole('User', 'Email Access')
     '''
@@ -125,22 +128,29 @@
     '''
     return db
 
+
 class cldb(dict):
     def __init__(self, **values):
         super(cldb, self).__init__()
         for key, value in values.items():
             super(cldb, self).__setitem__(s2b(key), value)
+
     def __getitem__(self, key):
         return super(cldb, self).__getitem__(s2b(key))
+
     def __setitem__(self, key, value):
         return super(cldb, self).__setitem__(s2b(key), value)
+
     def __delitem__(self, key):
         return super(cldb, self).__delitem__(s2b(key))
+
     def __contains__(self, key):
         return super(cldb, self).__contains__(s2b(key))
+
     def close(self):
         pass
 
+
 class BasicDatabase(dict):
     ''' Provide a nice encapsulation of an anydbm store.
 
@@ -150,20 +160,26 @@
         super(BasicDatabase, self).__init__()
         for k, v in values.items():
             super(BasicDatabase, self).__setitem__(s2b(k), v)
+
     def __getitem__(self, key):
         if key not in self:
             d = self[key] = {}
             return d
         return super(BasicDatabase, self).__getitem__(s2b(key))
+
     def __setitem__(self, key, value):
         return super(BasicDatabase, self).__setitem__(s2b(key), value)
+
     def __delitem__(self, key):
         return super(BasicDatabase, self).__delitem__(s2b(key))
+
     def __contains__(self, key):
         return super(BasicDatabase, self).__contains__(s2b(key))
+
     def exists(self, infoid):
         return infoid in self
     _marker = []
+
     def get(self, infoid, value, default=_marker):
         if infoid not in self:
             if default is self._marker:
@@ -171,10 +187,12 @@
             else:
                 return default
         return self[infoid].get(value, default)
+
     def getall(self, infoid):
         if infoid not in self:
             raise KeyError(infoid)
         return self[infoid]
+
     def set(self, infoid, **newvalues):
         if '__timestamp' in newvalues:
             try:
@@ -185,28 +203,37 @@
                 else:
                     newvalues['__timestamp'] = time.time()
         self[infoid].update(newvalues)
+
     def list(self):
         return list(self.keys())
+
     def destroy(self, infoid):
         del self[infoid]
+
     def commit(self):
         pass
+
     def close(self):
         pass
+
     def updateTimestamp(self, sessid):
         sess = self.get(sessid, '__timestamp', None)
         now = time.time()
         if sess is None or now > sess + 60:
             self.set(sessid, __timestamp=now)
+
     def clean(self):
         pass
 
+
 class Sessions(BasicDatabase, sessions_dbm.Sessions):
     name = 'sessions'
 
+
 class OneTimeKeys(BasicDatabase, sessions_dbm.OneTimeKeys):
     name = 'otks'
 
+
 class Indexer(indexer_dbm.Indexer):
     def __init__(self, db):
         indexer_common.Indexer.__init__(self, db)
@@ -219,17 +246,19 @@
         if self.index_loaded() and not reload:
             return 0
         self.words = {}
-        self.files = {'_TOP':(0,None)}
+        self.files = {'_TOP': (0, None)}
         self.fileids = {}
         self.changed = 0
 
     def save_index(self):
         pass
+
     def force_reindex(self):
         # TODO I'm concerned that force_reindex may not be tested by
         # testForcedReindexing if the functionality can just be removed
         pass
 
+
 class Database(back_anydbm.Database):
     """A database for storing records containing flexible data types.
 
@@ -252,17 +281,17 @@
         self.tx_files = {}
         self.security = security.Security(self)
         self.stats = {'cache_hits': 0, 'cache_misses': 0, 'get_items': 0,
-            'filtering': 0}
+                      'filtering': 0}
         self.sessions = Sessions()
         self.otks = OneTimeKeys()
         self.indexer = Indexer(self)
         roundupdb.Database.__init__(self)
 
         # anydbm bits
-        self.cache = {}         # cache of nodes loaded or created
-        self.dirtynodes = {}    # keep track of the dirty nodes by class
-        self.newnodes = {}      # keep track of the new nodes by class
-        self.destroyednodes = {}# keep track of the destroyed nodes by class
+        self.cache = {}           # cache of nodes loaded or created
+        self.dirtynodes = {}      # keep track of the dirty nodes by class
+        self.newnodes = {}        # keep track of the new nodes by class
+        self.destroyednodes = {}  # keep track of the destroyed nodes by class
         self.transactions = []
         self.tx_Source = None
         # persistence across re-open
@@ -293,14 +322,14 @@
         pass
 
     def __repr__(self):
-        return '<memorydb instance at %x>'%id(self)
+        return '<memorydb instance at %x>' % id(self)
 
     def storefile(self, classname, nodeid, property, content):
         if isinstance(content, str):
             content = s2b(content)
         self.tx_files[classname, nodeid, property] = content
         self.transactions.append((self.doStoreFile, (classname, nodeid,
-            property)))
+                                                     property)))
 
     def getfile(self, classname, nodeid, property):
         if (classname, nodeid, property) in self.tx_files:
@@ -340,7 +369,7 @@
     def addclass(self, cl):
         cn = cl.classname
         if cn in self.classes:
-            raise ValueError('Class "%s" already defined.'%cn)
+            raise ValueError('Class "%s" already defined.' % cn)
         self.classes[cn] = cl
         if cn not in self.items:
             self.items[cn] = cldb()
@@ -348,11 +377,14 @@
 
         # add default Edit and View permissions
         self.security.addPermission(name="Create", klass=cn,
-            description="User is allowed to create "+cn)
+                                    description="User is allowed to create " +
+                                    cn)
         self.security.addPermission(name="Edit", klass=cn,
-            description="User is allowed to edit "+cn)
+                                    description="User is allowed to edit " +
+                                    cn)
         self.security.addPermission(name="View", klass=cn,
-            description="User is allowed to access "+cn)
+                                    description="User is allowed to access " +
+                                    cn)
 
     def getclasses(self):
         """Return a list of the names of all existing classes."""
@@ -366,7 +398,7 @@
         try:
             return self.classes[classname]
         except KeyError:
-            raise KeyError('There is no class called "%s"'%classname)
+            raise KeyError('There is no class called "%s"' % classname)
 
     #
     # Class DBs
@@ -389,6 +421,7 @@
     def newid(self, classname):
         self.ids[classname] += 1
         return str(self.ids[classname])
+
     def setid(self, classname, id):
         self.ids[classname] = int(id)
 
@@ -396,13 +429,13 @@
     # Journal
     #
     def doSaveJournal(self, classname, nodeid, action, params, creator,
-            creation):
+                      creation):
         if creator is None:
             creator = self.getuid()
         if creation is None:
             creation = date.Date()
-        self.journals.setdefault(classname, {}).setdefault(nodeid,
-            []).append((nodeid, creation, creator, action, params))
+        self.journals.setdefault(classname, {}).setdefault(
+            nodeid, []).append((nodeid, creation, creator, action, params))
 
     def doSetJournal(self, classname, nodeid, journal):
         self.journals.setdefault(classname, {})[nodeid] = journal
@@ -424,11 +457,11 @@
                 if not cache_creation:
                     cache_creation = date.Date()
                 res.append((cache_nodeid, cache_creation, cache_creator,
-                    cache_action, cache_params))
+                            cache_action, cache_params))
         try:
             res += self.journals.get(classname, {})[nodeid]
         except KeyError:
-            if res: return res
+            if res: return res                                     # noqa: E701
             raise IndexError(nodeid)
         return res
 
@@ -440,22 +473,23 @@
             db = self.journals[classname]
             for key in db:
                 # get the journal for this db entry
-                l = []
-                last_set_entry = None
+                kept_journals = []
                 for entry in db[key]:
                     # unpack the entry
                     (nodeid, date_stamp, self.journaltag, action,
-                        params) = entry
+                     params) = entry
                     date_stamp = date_stamp.serialise()
                     # if the entry is after the pack date, _or_ the initial
                     # create entry, then it stays
                     if date_stamp > pack_before or action == 'create':
-                        l.append(entry)
-                db[key] = l
+                        kept_journals.append(entry)
+                db[key] = kept_journals
+
 
 class Class(back_anydbm.Class):
     pass
 
+
 class FileClass(back_anydbm.FileClass):
     def __init__(self, db, classname, **properties):
         if 'content' not in properties:
@@ -484,7 +518,8 @@
             mime_type = self.default_mime_type
         if props['content'].indexme:
             self.db.indexer.add_text((self.classname, nodeid, 'content'),
-                self.get(nodeid, 'content'), mime_type)
+                                     self.get(nodeid, 'content'), mime_type)
+
 
 # deviation from spec - was called ItemClass
 class IssueClass(Class, roundupdb.IssueClass):
@@ -512,9 +547,11 @@
 # Methods to check for existence and nuke the db
 # We don't support multiple named databases
 
+
 def db_exists(name):
     return bool(Database.memdb)
 
+
 def db_nuke(name):
     Database.memdb = {}
 

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