Пример #1
0
    def test_copy_mutable_list(self):
        mlist = MutableList([{"a": 1, "b": 2}])
        shallow_copy = copy.copy(mlist)
        self.assertEqual(mlist, shallow_copy)
        self.assertIs(mlist[0], shallow_copy[0])

        deep_copy = copy.deepcopy(mlist)
        self.assertEqual(mlist, deep_copy)
        self.assertIsNot(mlist[0], deep_copy[0])
Пример #2
0
    def test_deep_copy(self, m_changed):
        lst = MutableList(('element1', 'element2'))
        self.mutable_obj.insert(0, lst)

        m_changed.reset_mock()
        clone = deepcopy(self.mutable_obj)
        self.assertEqual(0, m_changed.call_count)

        lst[0] = 'new_element'
        self.assertEqual(clone[0][0], 'element1')
        self.assertEqual(self.mutable_obj[0][0], 'new_element')
Пример #3
0
    def test_deep_copy(self, m_changed):
        lst = MutableList(('element1', 'element2'))
        self.mutable_list.insert(0, lst)

        m_changed.reset_mock()
        clone = deepcopy(self.mutable_list)
        # changed should calls two times
        # - root cloned list (clone)
        # - mutable list element in root list (cloned lst)
        self.assertEqual(m_changed.call_count, 2)

        lst[0] = 'new_element'
        self.assertEqual(clone[0][0], 'element1')
        self.assertEqual(self.mutable_list[0][0], 'new_element')
Пример #4
0
 def test_coerce_mutable_list(self, m_coerce):
     lst = MutableList()
     self.assertIsInstance(self.mutable_list.coerce('key', lst),
                           MutableList)
     self.assertFalse(m_coerce.called)
Пример #5
0
 def setUp(self):
     self.mutable_list = MutableList()
Пример #6
0
 def test_pop_default_from_empty_list(self):
     self.standard = []
     self.mutable_obj = MutableList()
     self._check_failure(IndexError, 'pop')
Пример #7
0
 def test_initialize(self):
     with mock.patch('sqlalchemy.ext.mutable.Mutable.changed') as m_changed:
         MutableList([1, 2, 3])
         self._assert_object_not_changed(m_changed)
Пример #8
0
 def setUp(self):
     super(TestMutableListBase, self).setUp()
     self.standard = ['element1', 'element2']
     self.mutable_obj = MutableList()
     self.mutable_obj.extend(self.standard)