示例#1
0
 def test_mock_add_spec_magic_methods(self):
     for Klass in (MagicMock, NonCallableMagicMock):
         mock = Klass()
         int(mock)
         mock.mock_add_spec(object)
         self.assertRaises(TypeError, int, mock)
         mock = Klass()
         mock['foo']
         mock.__int__.return_value = 4
         mock.mock_add_spec(int)
         self.assertEqual(int(mock), 4)
         self.assertRaises(TypeError, lambda : mock['foo'])
示例#2
0
 def test_mock_add_spec_magic_methods(self):
     for Klass in (MagicMock, NonCallableMagicMock):
         mock = Klass()
         int(mock)
         mock.mock_add_spec(object)
         self.assertRaises(TypeError, int, mock)
         mock = Klass()
         mock['foo']
         mock.__int__.return_value = 4
         mock.mock_add_spec(int)
         self.assertEqual(int(mock), 4)
         self.assertRaises(TypeError, lambda : mock['foo'])
示例#3
0
    def test_mock_add_spec(self):
        class _One(object):
            one = 1
        class _Two(object):
            two = 2
        class Anything(object):
            one = two = three = 'four'

        klasses = [
            Mock, MagicMock, NonCallableMock, NonCallableMagicMock
        ]
        for Klass in list(klasses):
            klasses.append(lambda K=Klass: K(spec=Anything))
            klasses.append(lambda K=Klass: K(spec_set=Anything))

        for Klass in klasses:
            for kwargs in dict(), dict(spec_set=True):
                mock = Klass()
                #no error
                mock.one, mock.two, mock.three

                for One, Two in [(_One, _Two), (['one'], ['two'])]:
                    for kwargs in dict(), dict(spec_set=True):
                        mock.mock_add_spec(One, **kwargs)

                        mock.one
                        self.assertRaises(
                            AttributeError, getattr, mock, 'two'
                        )
                        self.assertRaises(
                            AttributeError, getattr, mock, 'three'
                        )
                        if 'spec_set' in kwargs:
                            self.assertRaises(
                                AttributeError, setattr, mock, 'three', None
                            )

                        mock.mock_add_spec(Two, **kwargs)
                        self.assertRaises(
                            AttributeError, getattr, mock, 'one'
                        )
                        mock.two
                        self.assertRaises(
                            AttributeError, getattr, mock, 'three'
                        )
                        if 'spec_set' in kwargs:
                            self.assertRaises(
                                AttributeError, setattr, mock, 'three', None
                            )
示例#4
0
    def test_mock_add_spec(self):
        class _One(object):
            one = 1
        class _Two(object):
            two = 2
        class Anything(object):
            one = two = three = 'four'

        klasses = [
            Mock, MagicMock, NonCallableMock, NonCallableMagicMock
        ]
        for Klass in list(klasses):
            klasses.append(lambda K=Klass: K(spec=Anything))
            klasses.append(lambda K=Klass: K(spec_set=Anything))

        for Klass in klasses:
            for kwargs in dict(), dict(spec_set=True):
                mock = Klass()
                #no error
                mock.one, mock.two, mock.three

                for One, Two in [(_One, _Two), (['one'], ['two'])]:
                    for kwargs in dict(), dict(spec_set=True):
                        mock.mock_add_spec(One, **kwargs)

                        mock.one
                        self.assertRaises(
                            AttributeError, getattr, mock, 'two'
                        )
                        self.assertRaises(
                            AttributeError, getattr, mock, 'three'
                        )
                        if 'spec_set' in kwargs:
                            self.assertRaises(
                                AttributeError, setattr, mock, 'three', None
                            )

                        mock.mock_add_spec(Two, **kwargs)
                        self.assertRaises(
                            AttributeError, getattr, mock, 'one'
                        )
                        mock.two
                        self.assertRaises(
                            AttributeError, getattr, mock, 'three'
                        )
                        if 'spec_set' in kwargs:
                            self.assertRaises(
                                AttributeError, setattr, mock, 'three', None
                            )
    def test_mock_add_spec(self):

        class _One(object):
            __qualname__ = 'MockTest.test_mock_add_spec.<locals>._One'
            one = 1

        class _Two(object):
            __qualname__ = 'MockTest.test_mock_add_spec.<locals>._Two'
            two = 2

        class Anything(object):
            __qualname__ = 'MockTest.test_mock_add_spec.<locals>.Anything'
            one = two = three = 'four'

        klasses = [Mock, MagicMock, NonCallableMock, NonCallableMagicMock]
        for Klass in list(klasses):
            klasses.append(lambda K=Klass: K(spec=Anything))
            klasses.append(lambda K=Klass: K(spec_set=Anything))
        for Klass in klasses:
            for kwargs in (dict(), dict(spec_set=True)):
                mock = Klass()
                (mock.one, mock.two, mock.three)
                for (One, Two) in [(_One, _Two), (['one'], ['two'])]:
                    for kwargs in (dict(), dict(spec_set=True)):
                        mock.mock_add_spec(One, **kwargs)
                        mock.one
                        self.assertRaises(AttributeError, getattr, mock, 'two')
                        self.assertRaises(AttributeError, getattr, mock, 'three')
                        if 'spec_set' in kwargs:
                            self.assertRaises(AttributeError, setattr, mock, 'three', None)
                        mock.mock_add_spec(Two, **kwargs)
                        self.assertRaises(AttributeError, getattr, mock, 'one')
                        mock.two
                        self.assertRaises(AttributeError, getattr, mock, 'three')
                        while 'spec_set' in kwargs:
                            self.assertRaises(AttributeError, setattr, mock, 'three', None)