jenkins-bot has submitted this change and it was merged.

Change subject: Migrate get_subclasses to pybal.util; add unit tests
......................................................................


Migrate get_subclasses to pybal.util; add unit tests

Change-Id: I15b39e060384b3b984e78f90875265760a3b123b
---
M pybal/config.py
M pybal/test/test_util.py
M pybal/util.py
3 files changed, 30 insertions(+), 13 deletions(-)

Approvals:
  Ori.livneh: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/pybal/config.py b/pybal/config.py
index 787cf97..7e3a43b 100644
--- a/pybal/config.py
+++ b/pybal/config.py
@@ -18,19 +18,7 @@
 from twisted.python import log
 from twisted.web import client
 
-
-def get_subclasses(cls):
-    """Return a list of all direct and indirect subclasses of a given class."""
-    subclasses = []
-    for subclass in cls.__subclasses__():
-        subclasses.append(subclass)
-        subclasses.extend(get_subclasses(subclass))
-    return subclasses
-
-
-class PyBalConfigurationError(Exception):
-    """Raised when PyBal encounters a configuration it does not understand."""
-    pass
+from pybal.util import get_subclasses
 
 
 class ConfigurationObserver(object):
diff --git a/pybal/test/test_util.py b/pybal/test/test_util.py
index 0bcd90c..77c2f0c 100644
--- a/pybal/test/test_util.py
+++ b/pybal/test/test_util.py
@@ -52,6 +52,26 @@
             self.assertIn('test', f.read())
 
 
+class MiscUtilTestCase(PyBalTestCase):
+    """Test case for misc. methods in `pybal.util`."""
+
+    def testGetSubclasses(self):
+        """Test case for `pybal.util.get_subclasses`."""
+
+        class DummyParent(object):
+            pass
+
+        class DummyChild(DummyParent):
+            pass
+
+        class DummyGrandChild(DummyChild):
+            pass
+
+        subclasses = pybal.util.get_subclasses(DummyParent)
+        subclasses.sort(key=lambda cls: cls.__name__)
+        self.assertEqual(subclasses, [DummyChild, DummyGrandChild])
+
+
 class ConfigDictTestCase(PyBalTestCase):
     """Test case for `pybal.util.ConfigDict`."""
 
diff --git a/pybal/util.py b/pybal/util.py
index 315017f..6fd52c0 100644
--- a/pybal/util.py
+++ b/pybal/util.py
@@ -8,6 +8,15 @@
 import datetime
 
 
+def get_subclasses(cls):
+    """Return a list of all direct and indirect subclasses of a given class."""
+    subclasses = []
+    for subclass in cls.__subclasses__():
+        subclasses.append(subclass)
+        subclasses.extend(get_subclasses(subclass))
+    return subclasses
+
+
 class LogFile(object):
     def __init__(self, filename):
         self.filename = filename

-- 
To view, visit https://gerrit.wikimedia.org/r/233649
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I15b39e060384b3b984e78f90875265760a3b123b
Gerrit-PatchSet: 1
Gerrit-Project: operations/debs/pybal
Gerrit-Branch: master
Gerrit-Owner: Ori.livneh <[email protected]>
Gerrit-Reviewer: Ori.livneh <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to