summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonty Taylor <mordred@inaugust.com>2013-05-21 19:23:45 -0400
committerMonty Taylor <mordred@inaugust.com>2013-05-21 19:23:45 -0400
commit4b18f8a0a61d1fd0761839be5771233548317fba (patch)
treef9ca4c978579c539560625942113dc18671ddc96
parent4b4421e766fec59ad7ebd24fe6f45bec8fe27883 (diff)
downloadpymox-4b18f8a0a61d1fd0761839be5771233548317fba.tar.gz
Migrate test bases to testtools.
-rw-r--r--mox3/tests/test_mox.py74
-rw-r--r--mox3/tests/test_stubout.py15
-rw-r--r--test-requirements.txt5
3 files changed, 51 insertions, 43 deletions
diff --git a/mox3/tests/test_mox.py b/mox3/tests/test_mox.py
index db00b29..a04a998 100644
--- a/mox3/tests/test_mox.py
+++ b/mox3/tests/test_mox.py
@@ -20,7 +20,7 @@
import io
import re
import sys
-import unittest
+import testtools
from mox3 import mox
from mox3.tests import mox_helper
@@ -29,7 +29,7 @@ from mox3.tests import mox_helper
OS_LISTDIR = mox_helper.os.listdir
-class ExpectedMethodCallsErrorTest(unittest.TestCase):
+class ExpectedMethodCallsErrorTest(testtools.TestCase):
"""Test creation and string conversion of ExpectedMethodCallsError."""
def testAtLeastOneMethod(self):
@@ -63,7 +63,7 @@ class ExpectedMethodCallsErrorTest(unittest.TestCase):
str(e))
-class OrTest(unittest.TestCase):
+class OrTest(testtools.TestCase):
"""Test Or correctly chains Comparators."""
def testValidOr(self):
@@ -77,7 +77,7 @@ class OrTest(unittest.TestCase):
self.assertFalse(mox.Or(mox.IsA(dict), mox.IsA(str)) == 0)
-class AndTest(unittest.TestCase):
+class AndTest(testtools.TestCase):
"""Test And correctly chains Comparators."""
def testValidAnd(self):
@@ -105,7 +105,7 @@ class AndTest(unittest.TestCase):
mox.ContainsKeyValue("mock", "obj")) == test_dict)
-class FuncTest(unittest.TestCase):
+class FuncTest(testtools.TestCase):
"""Test Func correctly evaluates based upon true-false return."""
def testFuncTrueFalseEvaluation(self):
@@ -136,7 +136,7 @@ class FuncTest(unittest.TestCase):
TestException, mox.Func(raiseExceptionOnNotOne).__eq__, 2)
-class SameElementsAsTest(unittest.TestCase):
+class SameElementsAsTest(testtools.TestCase):
"""SameElementsAs correctly identifies sequences with same elements."""
def testSortedLists(self):
@@ -179,7 +179,7 @@ class SameElementsAsTest(unittest.TestCase):
self.assertFalse(mox.SameElementsAs([1, 2]) == iter([{}, 1, 2]))
-class ContainsKeyValueTest(unittest.TestCase):
+class ContainsKeyValueTest(testtools.TestCase):
"""Test ContainsKeyValue correctly identifies key/value pairs in a dict.
"""
@@ -196,7 +196,7 @@ class ContainsKeyValueTest(unittest.TestCase):
self.assertFalse(mox.ContainsKeyValue("qux", 1) == {"key": 2})
-class ContainsAttributeValueTest(unittest.TestCase):
+class ContainsAttributeValueTest(testtools.TestCase):
"""Test ContainsAttributeValue identifies properties in an object."""
def setUp(self):
@@ -205,6 +205,7 @@ class ContainsAttributeValueTest(unittest.TestCase):
class TestObject(object):
key = 1
+ super(ContainsAttributeValueTest, self).setUp()
self.test_object = TestObject()
def testValidPair(self):
@@ -221,7 +222,7 @@ class ContainsAttributeValueTest(unittest.TestCase):
self.assertFalse(mox.ContainsKeyValue("qux", 1) == self.test_object)
-class InTest(unittest.TestCase):
+class InTest(testtools.TestCase):
"""Test In correctly identifies a key in a list/dict."""
def testItemInList(self):
@@ -246,7 +247,7 @@ class InTest(unittest.TestCase):
self.assertFalse(mox.In((1, 2)) == ((1, 2, 3), (4, 5)))
-class NotTest(unittest.TestCase):
+class NotTest(testtools.TestCase):
"""Test Not correctly identifies False predicates."""
def testItemInList(self):
@@ -262,7 +263,7 @@ class NotTest(unittest.TestCase):
self.assertTrue(mox.Not(mox.ContainsKeyValue("qux", 1)) == {"key": 2})
-class StrContainsTest(unittest.TestCase):
+class StrContainsTest(testtools.TestCase):
"""Test StrContains checks for substring occurrence of a parameter."""
def testValidSubstringAtStart(self):
@@ -286,7 +287,7 @@ class StrContainsTest(unittest.TestCase):
self.assertTrue(mox.StrContains("abc") == "ababcabcabcababc")
-class RegexTest(unittest.TestCase):
+class RegexTest(testtools.TestCase):
"""Test Regex correctly matches regular expressions."""
def testIdentifyBadSyntaxDuringInit(self):
@@ -319,7 +320,7 @@ class RegexTest(unittest.TestCase):
"<regular expression 'a\s+b', flags=4>")
-class IsTest(unittest.TestCase):
+class IsTest(testtools.TestCase):
"""Verify Is correctly checks equality based upon identity, not value."""
class AlwaysComparesTrue(object):
@@ -367,7 +368,7 @@ class IsTest(unittest.TestCase):
self.assertFalse(isa_list == mixed_list)
-class IsATest(unittest.TestCase):
+class IsATest(testtools.TestCase):
"""Verify IsA correctly checks equality based upon class type not value."""
def testEqualityValid(self):
@@ -405,7 +406,7 @@ class IsATest(unittest.TestCase):
self.assertTrue(isA == stringIO)
-class IsAlmostTest(unittest.TestCase):
+class IsAlmostTest(testtools.TestCase):
"""Verify IsAlmost correctly checks equality of floating point numbers."""
def testEqualityValid(self):
@@ -429,7 +430,7 @@ class IsAlmostTest(unittest.TestCase):
self.assertNotEqual(mox.IsAlmost('1.8999999999'), '1.9')
-class ValueRememberTest(unittest.TestCase):
+class ValueRememberTest(testtools.TestCase):
"""Verify comparing argument against remembered value."""
def testValueEquals(self):
@@ -460,10 +461,11 @@ class ValueRememberTest(unittest.TestCase):
self.assertEqual(value, 'hello world') # compare against stored value.
-class MockMethodTest(unittest.TestCase):
+class MockMethodTest(testtools.TestCase):
"""Test class to verify that the MockMethod class is working correctly."""
def setUp(self):
+ super(MockMethodTest, self).setUp()
self.expected_method = mox.MockMethod(
"testMethod", [], False)(['original'])
self.mock_method = mox.MockMethod(
@@ -492,7 +494,7 @@ class MockMethodTest(unittest.TestCase):
expected_exception = TestException('test exception')
self.expected_method.AndRaise(expected_exception)
- self.assertRaises(TestException, self.mock_method)
+ self.assertRaises(TestException, self.mock_method, ['original'])
def testWithSideEffects(self):
"""Should call state modifier."""
@@ -633,10 +635,11 @@ class MockMethodTest(unittest.TestCase):
self.assertEqual(str(method), "testMethod() -> ('a', {1: 2})")
-class MockAnythingTest(unittest.TestCase):
+class MockAnythingTest(testtools.TestCase):
"""Verify that the MockAnything class works as expected."""
def setUp(self):
+ super(MockAnythingTest, self).setUp()
self.mock_object = mox.MockAnything()
def testRepr(self):
@@ -764,7 +767,7 @@ class MockAnythingTest(unittest.TestCase):
self.assertTrue('MockAnything' in repr(self.mock_object))
-class MethodCheckerTest(unittest.TestCase):
+class MethodCheckerTest(testtools.TestCase):
"""Tests MockMethod's use of MethodChecker method."""
def testUnboundMethodsRequiresInstance(self):
@@ -925,10 +928,11 @@ class CheckCallTestClass(object):
pass
-class MockObjectTest(unittest.TestCase):
+class MockObjectTest(testtools.TestCase):
"""Verify that the MockObject class works as exepcted."""
def setUp(self):
+ super(MockObjectTest, self).setUp()
self.mock_object = mox.MockObject(TestClass)
def testSetupModeWithValidCall(self):
@@ -1300,10 +1304,11 @@ class MockObjectTest(unittest.TestCase):
attrs={"__private": "value"})
-class MoxTest(unittest.TestCase):
+class MoxTest(testtools.TestCase):
"""Verify Mox works correctly."""
def setUp(self):
+ super(MoxTest, self).setUp()
self.mox = mox.Mox()
def testCreateObject(self):
@@ -2065,7 +2070,7 @@ class MoxTest(unittest.TestCase):
'Did you remember to put your mocks in replay mode?', str(e))
-class ReplayTest(unittest.TestCase):
+class ReplayTest(testtools.TestCase):
"""Verify Replay works properly."""
def testReplay(self):
@@ -2076,20 +2081,19 @@ class ReplayTest(unittest.TestCase):
self.assertTrue(mock_obj._replay_mode)
-class MoxTestBaseTest(unittest.TestCase):
+class MoxTestBaseTest(testtools.TestCase):
"""Verify that all tests in class derived from MoxTestBase are wrapped."""
def setUp(self):
+ super(MoxTestBaseTest, self).setUp()
self.mox = mox.Mox()
+ self.addCleanup(self.mox.UnsetStubs)
self.test_mox = mox.Mox()
+ self.addCleanup(self.test_mox.UnsetStubs)
self.test_stubs = mox.stubout.StubOutForTesting()
- self.result = unittest.TestResult()
-
- def tearDown(self):
- self.mox.UnsetStubs()
- self.test_mox.UnsetStubs()
- self.test_stubs.UnsetAll()
- self.test_stubs.SmartUnsetAll()
+ self.addCleanup(self.test_stubs.UnsetAll)
+ self.addCleanup(self.test_stubs.SmartUnsetAll)
+ self.result = testtools.TestResult()
def _setUpTestClass(self):
"""Replacement for setUp in the test class instance.
@@ -2219,7 +2223,7 @@ class MoxTestBaseTest(unittest.TestCase):
self._VerifySuccess()
-class VerifyTest(unittest.TestCase):
+class VerifyTest(testtools.TestCase):
"""Verify Verify works properly."""
def testVerify(self):
@@ -2233,7 +2237,7 @@ class VerifyTest(unittest.TestCase):
self.assertRaises(mox.ExpectedMethodCallsError, mox.Verify, mock_obj)
-class ResetTest(unittest.TestCase):
+class ResetTest(testtools.TestCase):
"""Verify Reset works properly."""
def testReset(self):
@@ -2250,7 +2254,7 @@ class ResetTest(unittest.TestCase):
self.assertEqual(0, len(mock_obj._expected_calls_queue))
-class MyTestCase(unittest.TestCase):
+class MyTestCase(testtools.TestCase):
"""Simulate the use of a fake wrapper around Python's unittest library."""
def setUp(self):
@@ -2395,4 +2399,4 @@ class InheritsFromCallable(CallableClass):
if __name__ == '__main__':
- unittest.main()
+ testtools.main()
diff --git a/mox3/tests/test_stubout.py b/mox3/tests/test_stubout.py
index 621e4d7..4a04170 100644
--- a/mox3/tests/test_stubout.py
+++ b/mox3/tests/test_stubout.py
@@ -15,20 +15,21 @@
# This is a fork of the pymox library intended to work with Python 3.
# The file was modified by quermit@gmail.com and dawid.fatyga@gmail.com
-import unittest
+import fixtures
+import testtools
from mox3 import mox
from mox3 import stubout
from mox3.tests import stubout_helper
-class StubOutForTestingTest(unittest.TestCase):
+class StubOutForTestingTest(testtools.TestCase):
def setUp(self):
+ super(StubOutForTestingTest, self).setUp()
self.mox = mox.Mox()
- self.sample_function_backup = stubout_helper.SampleFunction
-
- def tearDown(self):
- stubout_helper.SampleFunction = self.sample_function_backup
+ self.useFixture(fixtures.MonkeyPatch(
+ 'mox3.tests.stubout_helper.SampleFunction',
+ stubout_helper.SampleFunction))
def testSmartSetOnModule(self):
mock_function = self.mox.CreateMockAnything()
@@ -45,4 +46,4 @@ class StubOutForTestingTest(unittest.TestCase):
if __name__ == '__main__':
- unittest.main()
+ testtools.main()
diff --git a/test-requirements.txt b/test-requirements.txt
index d682806..de5695a 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -7,6 +7,9 @@ pyflakes==0.7.2
flake8==2.0
hacking>=0.5.3,<0.6
-coverage
+coverage>=3.6
discover
+fixtures>=0.3.12
+python-subunit
testrepository>=0.0.13
+testtools>=0.9.27