Provide a mean for simulation dummy devices

create the correct descriptive data.
Main use case is for unit-tests and testing custom configs.

Change-Id: I3077f80cb9fdbf2443ee9da796c3749707fd2b55
Reviewed-on: https://forge.frm2.tum.de/review/16806
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
This commit is contained in:
Enrico Faulhaber
2017-12-01 15:05:45 +01:00
parent 8c26ecf5cf
commit b0c3ac01d4
3 changed files with 142 additions and 5 deletions

View File

@ -29,7 +29,6 @@
import time
import types
import inspect
import threading
from secop.lib import formatExtendedStack, mkthread
from secop.lib.parsing import format_time
@ -338,6 +337,7 @@ class Module(object):
if k[1:] in self.PROPERTIES:
self.PROPERTIES[k[1:]] = v
del cfgdict[k]
# derive automatic properties
mycls = self.__class__
myclassname = '%s.%s' % (mycls.__module__, mycls.__name__)
@ -372,6 +372,7 @@ class Module(object):
'Module %s:config Parameter %r '
'not unterstood! (use on of %r)' %
(self.name, k, self.PARAMS.keys()))
# complain if a PARAM entry has no default value and
# is not specified in cfgdict
for k, v in self.PARAMS.items():
@ -404,7 +405,6 @@ class Module(object):
# raise ConfigError('Module %s: config parameter %r:\n%r' %
# (self.name, k, e))
setattr(self, k, v)
self._requestLock = threading.RLock()
def init(self):
# may be overriden in derived classes to init stuff
@ -440,9 +440,7 @@ class Readable(Module):
def init(self):
Module.init(self)
self._pollthread = threading.Thread(target=self.__pollThread)
self._pollthread.daemon = True
self._pollthread.start()
self._pollthread = mkthread(self.__pollThread)
def __pollThread(self):
"""super simple and super stupid per-module polling thread"""