def test_reorder_from_index_add(self): """Verify items can be added when reordering from an index.""" data = { 'initial': 2.0, 'outline': [ {'a': None}, { 'b': [ {'ba': [{'baa': None}, {'new': None}, {'bac': None}]}, {'bb': [{'new': [{'text': 'item_text'}]}]}, ] }, {'c': None}, ], } expected = [ Level('2'), Level('3.0'), Level('3.1.0'), Level('3.1.1'), Level('3.1.2'), Level('3.1.3'), Level('3.2.0'), Level('3.2.1'), Level('4'), ] # Act self.document._read_index = MagicMock(return_value=data) Document._reorder_from_index(self.document, 'mock_path') # Assert self.document._read_index.assert_called_once_with('mock_path') actual = [item.level for item in self.document.items] self.assertListEqual(expected, actual) self.assertEqual(self.document.items[-2].text, 'item_text')
def test_reorder_from_index_add(self): """Verify items can be added when reordering from an index.""" data = {'initial': 2.0, 'outline': [ {'a': None}, {'b': [ {'ba': [ {'baa': None}, {'new': None}, {'bac': None}]}, {'bb': [ {'new': [{'text': 'item_text'}]}]}]}, {'c': None}]} expected = [Level('2'), Level('3.0'), Level('3.1.0'), Level('3.1.1'), Level('3.1.2'), Level('3.1.3'), Level('3.2.0'), Level('3.2.1'), Level('4')] # Act self.document._read_index = MagicMock(return_value=data) Document._reorder_from_index(self.document, 'mock_path') # Assert self.document._read_index.assert_called_once_with('mock_path') actual = [item.level for item in self.document.items] self.assertListEqual(expected, actual) self.assertEqual(self.document.items[-2].text, 'item_text')
def test_reorder_from_index(self): """Verify items can be reordered from an index.""" mock_items = [] def mock_find_item(uid): """Return a mock item and store it.""" mock_item = MagicMock() if uid == 'bb': mock_item.level = Level('3.2') elif uid == 'bab': raise DoorstopError("unknown UID: bab") mock_item.uid = uid mock_items.append(mock_item) return mock_item mock_document = Mock() mock_document.find_item = mock_find_item data = { 'initial': 2.0, 'outline': [{ 'a': None }, { 'b': [{ 'ba': [{ 'baa': None }, { 'bab': None }, { 'bac': None }] }, { 'bb': None }] }, { 'c': None }] } expected = [ Level('2'), Level('3.0'), Level('3.1.0'), Level('3.1.1'), Level('3.1.3'), Level('3.2'), Level('4') ] # Act with patch('doorstop.common.read_text') as mock_read_text: with patch('doorstop.common.load_yaml', Mock(return_value=data)): Document._reorder_from_index(mock_document, 'mock_path') # Assert mock_read_text.assert_called_once_with('mock_path') actual = [item.level for item in mock_items] self.assertListEqual(expected, actual)
def test_reorder_from_index_delete(self): """Verify items can be deleted when reordering from an index.""" data = { 'initial': 2.0, 'outline': [{ 'a': None }, { 'b': [{ 'ba': [{ 'baa': None }, { 'bab': None }, { 'bac': None }] }, { 'bb': [{ 'bba': None }] }] }, { 'c': None }] } expected = [ Level('2'), Level('3.0'), Level('3.1.0'), Level('3.1.1'), Level('3.1.2'), Level('3.1.3'), Level('3.2.0'), Level('3.2.1'), Level('4') ] mock_item = self.document.add_item() # Act self.document._read_index = MagicMock(return_value=data) Document._reorder_from_index(self.document, 'mock_path') # Assert self.document._read_index.assert_called_once_with('mock_path') items = [] for item in self.document.items: if item is not mock_item: items.append(item) actual = [item.level for item in items] self.assertListEqual(expected, actual) self.assertEqual(mock_item.method_calls, [call.delete()])
def test_reorder_from_index(self): """Verify items can be reordered from an index.""" mock_items = [] def mock_find_item(uid): """Return a mock item and store it.""" mock_item = MagicMock() if uid == 'bb': mock_item.level = Level('3.2') elif uid == 'bab': raise DoorstopError("unknown UID: bab") mock_item.uid = uid mock_items.append(mock_item) return mock_item mock_document = Mock() mock_document.find_item = mock_find_item data = {'initial': 2.0, 'outline': [ {'a': None}, {'b': [ {'ba': [ {'baa': None}, {'bab': None}, {'bac': None}]}, {'bb': None}]}, {'c': None}]} expected = [Level('2'), Level('3.0'), Level('3.1.0'), Level('3.1.1'), Level('3.1.3'), Level('3.2'), Level('4')] # Act with patch('doorstop.common.read_text') as mock_read_text: with patch('doorstop.common.load_yaml', Mock(return_value=data)): Document._reorder_from_index(mock_document, 'mock_path') # Assert mock_read_text.assert_called_once_with('mock_path') actual = [item.level for item in mock_items] self.assertListEqual(expected, actual)
def test_reorder_from_index_delete(self): """Verify items can be deleted when reordering from an index.""" data = {'initial': 2.0, 'outline': [ {'a': None}, {'b': [ {'ba': [ {'baa': None}, {'bab': None}, {'bac': None}]}, {'bb': [ {'bba': None}]}]}, {'c': None}]} expected = [Level('2'), Level('3.0'), Level('3.1.0'), Level('3.1.1'), Level('3.1.2'), Level('3.1.3'), Level('3.2.0'), Level('3.2.1'), Level('4')] mock_item = self.document.add_item() # Act self.document._read_index = MagicMock(return_value=data) Document._reorder_from_index(self.document, 'mock_path') # Assert self.document._read_index.assert_called_once_with('mock_path') items = [] for item in self.document.items: if item is not mock_item: items.append(item) actual = [item.level for item in items] self.assertListEqual(expected, actual) self.assertEqual(mock_item.method_calls, [call.delete()])