~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_selftest.py

(jameinel) Teach TestCase.overrideAttr how to handle attributes that don't
 exist yet. (John A Meinel)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1651
1651
        self.assertRaises(AssertionError,
1652
1652
            self.assertListRaises, _TestException, success_generator)
1653
1653
 
 
1654
    def _run_successful_test(self, test):
 
1655
        result = testtools.TestResult()
 
1656
        test.run(result)
 
1657
        self.assertTrue(result.wasSuccessful())
 
1658
        return result
 
1659
 
1654
1660
    def test_overrideAttr_without_value(self):
1655
1661
        self.test_attr = 'original' # Define a test attribute
1656
1662
        obj = self # Make 'obj' visible to the embedded test
1666
1672
                obj.test_attr = 'modified'
1667
1673
                self.assertEqual('modified', obj.test_attr)
1668
1674
 
1669
 
        test = Test('test_value')
1670
 
        test.run(unittest.TestResult())
 
1675
        self._run_successful_test(Test('test_value'))
1671
1676
        self.assertEqual('original', obj.test_attr)
1672
1677
 
1673
1678
    def test_overrideAttr_with_value(self):
1683
1688
                self.assertEqual('original', self.orig)
1684
1689
                self.assertEqual('modified', obj.test_attr)
1685
1690
 
1686
 
        test = Test('test_value')
1687
 
        test.run(unittest.TestResult())
 
1691
        self._run_successful_test(Test('test_value'))
1688
1692
        self.assertEqual('original', obj.test_attr)
1689
1693
 
 
1694
    def test_overrideAttr_with_no_existing_value_and_value(self):
 
1695
        # Do not define the test_attribute
 
1696
        obj = self # Make 'obj' visible to the embedded test
 
1697
        class Test(tests.TestCase):
 
1698
 
 
1699
            def setUp(self):
 
1700
                tests.TestCase.setUp(self)
 
1701
                self.orig = self.overrideAttr(obj, 'test_attr', new='modified')
 
1702
 
 
1703
            def test_value(self):
 
1704
                self.assertEqual(tests._unitialized_attr, self.orig)
 
1705
                self.assertEqual('modified', obj.test_attr)
 
1706
 
 
1707
        self._run_successful_test(Test('test_value'))
 
1708
        self.assertRaises(AttributeError, getattr, obj, 'test_attr')
 
1709
 
 
1710
    def test_overrideAttr_with_no_existing_value_and_no_value(self):
 
1711
        # Do not define the test_attribute
 
1712
        obj = self # Make 'obj' visible to the embedded test
 
1713
        class Test(tests.TestCase):
 
1714
 
 
1715
            def setUp(self):
 
1716
                tests.TestCase.setUp(self)
 
1717
                self.orig = self.overrideAttr(obj, 'test_attr')
 
1718
 
 
1719
            def test_value(self):
 
1720
                self.assertEqual(tests._unitialized_attr, self.orig)
 
1721
                self.assertRaises(AttributeError, getattr, obj, 'test_attr')
 
1722
 
 
1723
        self._run_successful_test(Test('test_value'))
 
1724
        self.assertRaises(AttributeError, getattr, obj, 'test_attr')
 
1725
 
1690
1726
    def test_recordCalls(self):
1691
1727
        from bzrlib.tests import test_selftest
1692
1728
        calls = self.recordCalls(