Ori.livneh has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/172018

Change subject: Add tests for pybal.util.ConfigDict
......................................................................

Add tests for pybal.util.ConfigDict

* Where available, use setuptools rather than the now-deprecated distribute.
* Declare a test suite under tests/.
* Add tests for pybal.util.ConfigDict().
* ...more tests to come.

Run tests with 'python setup.py test'.

Change-Id: Icbf989117b9c5b3aabfdca074675dbb8ed01cd45
---
M setup.py
A tests/__init__.py
A tests/test_util.py
3 files changed, 68 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/debs/pybal 
refs/changes/18/172018/1

diff --git a/setup.py b/setup.py
index 22d9c4c..0ba6ec8 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,9 @@
 #!/usr/bin/env python
+try:
+    from setuptools import setup
+except ImportError:
+    from distutils.core import setup
 
-from distutils.core import setup
 
 setup(name="pybal",
     version="0.1",
@@ -10,4 +13,5 @@
     url="http://wikitech.wikimedia.org/view/Pybal";,
     packages=['pybal', 'pybal.monitors'],
     requires=['twisted'],
+    test_suite='tests',
     )
diff --git a/tests/__init__.py b/tests/__init__.py
new file mode 100644
index 0000000..858bcef
--- /dev/null
+++ b/tests/__init__.py
@@ -0,0 +1,11 @@
+# -*- coding: utf-8 -*-
+"""
+  PyBal unit tests
+  ~~~~~~~~~~~~~~~~
+
+  This module is the main entry point for the unit tests.
+
+"""
+# flake8: noqa
+
+from .test_util import *
diff --git a/tests/test_util.py b/tests/test_util.py
new file mode 100644
index 0000000..993a1bb
--- /dev/null
+++ b/tests/test_util.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+"""
+  PyBal unit tests
+  ~~~~~~~~~~~~~~~~
+
+  This module contains tests for `pybal.util`.
+
+"""
+import unittest
+
+import pybal
+import pybal.util
+
+
+class ConfigDictTestCase(unittest.TestCase):
+    """Test case for `pybal.util.ConfigDict`."""
+
+    def setUp(self):
+        self.config = pybal.util.ConfigDict({
+            'int': '3',
+            'truthy': 'true',
+            'falsy': 'false',
+            'float': '3.14',
+        })
+
+    def testGetInt(self):
+        """Test `ConfigDict.getint()`."""
+        self.assertEqual(self.config.getint('int'), 3)
+        self.assertEqual(self.config.getint('missing', 4), 4)
+        with self.assertRaises(KeyError):
+            self.config.getint('missing')
+        with self.assertRaises(ValueError):
+            self.config.getint('truthy')
+
+    def testGetFloat(self):
+        """Test `ConfigDict.getfloat()`."""
+        self.assertEqual(self.config.getfloat('float'), 3.14)
+        self.assertEqual(self.config.getfloat('missing', True), True)
+        with self.assertRaises(KeyError):
+            self.config.getfloat('missing')
+        with self.assertRaises(ValueError):
+            self.config.getfloat('falsy')
+
+    def testGetBoolean(self):
+        """Test `ConfigDict.getboolean()`."""
+        self.assertEqual(self.config.getboolean('truthy'), True)
+        self.assertEqual(self.config.getboolean('falsy'), False)
+        self.assertEqual(self.config.getboolean('missing', True), True)
+        with self.assertRaises(KeyError):
+            self.config.getboolean('missing')
+        with self.assertRaises(ValueError):
+            self.config.getboolean('float')

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Icbf989117b9c5b3aabfdca074675dbb8ed01cd45
Gerrit-PatchSet: 1
Gerrit-Project: operations/debs/pybal
Gerrit-Branch: master
Gerrit-Owner: Ori.livneh <[email protected]>

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

Reply via email to