summaryrefslogtreecommitdiff
path: root/src/sardana
diff options
context:
space:
mode:
authorMarc Josep Rosanes Siscart <mrosanes@cells.es>2015-01-21 11:43:56 +0100
committercpascual <cpascual@cells.es>2015-01-21 16:09:14 +0100
commitea04ef1f40239302351533c1c0a8829fc0357bfc (patch)
tree3a0acc2dadbd0511271531a73ac6c99b7a19aaec /src/sardana
parent742102b5f63ea29c9615fa6872ac664f60599262 (diff)
Add unregisterExtensions to sardana
Implement unregisterExtensions for sardana.taurus.core.tango.sardana to undo the actions of registerExtensions(). This is useful, e.g., in tearDown methods of unittests. Additionally, fix class name issue (pool.ControllerLib should be called pool.ControllerLibrary)
Diffstat (limited to 'src/sardana')
-rw-r--r--src/sardana/taurus/core/tango/sardana/__init__.py7
-rw-r--r--src/sardana/taurus/core/tango/sardana/macroserver.py6
-rw-r--r--src/sardana/taurus/core/tango/sardana/pool.py17
3 files changed, 28 insertions, 2 deletions
diff --git a/src/sardana/taurus/core/tango/sardana/__init__.py b/src/sardana/taurus/core/tango/sardana/__init__.py
index df3e2e52..45acf9ac 100644
--- a/src/sardana/taurus/core/tango/sardana/__init__.py
+++ b/src/sardana/taurus/core/tango/sardana/__init__.py
@@ -36,3 +36,10 @@ def registerExtensions():
pool.registerExtensions()
macroserver.registerExtensions()
+
+def unregisterExtensions():
+ from . import pool
+ from . import macroserver
+
+ pool.unregisterExtensions()
+ macroserver.unregisterExtensions()
diff --git a/src/sardana/taurus/core/tango/sardana/macroserver.py b/src/sardana/taurus/core/tango/sardana/macroserver.py
index 46e2379d..60a0efbb 100644
--- a/src/sardana/taurus/core/tango/sardana/macroserver.py
+++ b/src/sardana/taurus/core/tango/sardana/macroserver.py
@@ -1158,3 +1158,9 @@ def registerExtensions():
factory = Factory('tango')
factory.registerDeviceClass('MacroServer', BaseMacroServer)
factory.registerDeviceClass('Door', BaseDoor)
+
+def unregisterExtensions():
+ """Registers the macroserver extensions in the :class:`taurus.core.tango.TangoFactory`"""
+ factory = Factory('tango')
+ factory.unregisterDeviceClass('MacroServer')
+ factory.unregisterDeviceClass('Door')
diff --git a/src/sardana/taurus/core/tango/sardana/pool.py b/src/sardana/taurus/core/tango/sardana/pool.py
index 16105a63..57aae273 100644
--- a/src/sardana/taurus/core/tango/sardana/pool.py
+++ b/src/sardana/taurus/core/tango/sardana/pool.py
@@ -26,7 +26,7 @@
"""The device pool submodule. It contains specific part of sardana device pool"""
__all__ = ["InterruptException", "StopException", "AbortException",
- "BaseElement", "ControllerClass",
+ "BaseElement", "ControllerClass", "ControllerLibrary",
"PoolElement", "Controller", "ComChannel", "ExpChannel",
"CTExpChannel", "ZeroDExpChannel", "OneDExpChannel", "TwoDExpChannel",
"PseudoCounter", "Motor", "PseudoMotor", "MotorGroup",
@@ -175,7 +175,7 @@ class ControllerClass(BaseElement):
return cmp(self.getClassName(), o.getClassName())
-class ControllerLib(BaseElement):
+class ControllerLibrary(BaseElement):
def __init__(self, **kw):
self.__dict__.update(kw)
@@ -1779,3 +1779,16 @@ def registerExtensions():
for klass_name, klass in hw_type_map:
factory.registerDeviceClass(klass_name, klass)
+
+def unregisterExtensions():
+ factory = Factory()
+ factory.unregisterDeviceClass("Pool")
+
+ hw_type_names = [
+ 'Controller',
+ 'ComChannel', 'Motor', 'PseudoMotor',
+ 'CTExpChannel', 'ZeroDExpChannel', 'OneDExpChannel', 'TwoDExpChannel',
+ 'PseudoCounter', 'IORegister', 'MotorGroup', 'MeasurementGroup']
+
+ for klass_name in hw_type_names:
+ factory.unregisterDeviceClass(klass_name)