def test_itemize_invalid(self): """Verify item data can include invalid values.""" header = ['uid', 'text', 'links', 'ext1'] data = [['req1', 'text1', '', 'val1'], ['invalid']] mock_document = Mock() importer._itemize(header, data, mock_document) # pylint: disable=W0212
def test_itemize_blank_column(self, mock_add_item): """Verify item data can include invalid values.""" header = ['id', 'text', None, 'links', 'ext1'] # test 'id' is accepted data = [['req1', 'text1', 'blank', '', 'val1']] mock_document = Mock() mock_document.prefix = 'prefix' importer._itemize(header, data, mock_document) # pylint: disable=W0212 expected_attrs = {'links': [], 'ext1': 'val1', 'text': 'text1'} mock_add_item.assert_called_once_with(mock_document.prefix, 'req1', attrs=expected_attrs, document=mock_document)
def test_itemize_with_mapping(self, mock_add_item): """Verify item data can be converted to items with mapping.""" header = ['myid', 'text', 'links', 'ext1'] data = [['req1', 'text1', '', 'val1'], ['req2', 'text2', 'sys1,sys2', None]] mock_document = Mock() mapping = {'MyID': 'uid'} # Act importer._itemize(header, data, mock_document, mapping=mapping) # pylint: disable=W0212 # Assert self.assertEqual(2, mock_add_item.call_count)
def test_itemize_replace_existing(self, mock_add_item): """Verify item data can replace existing items.""" header = ['uid', 'text', 'links', 'ext1'] data = [['req1', 'text1', '', 'val1'], ['req2', 'text2', 'sys1,sys2', None]] mock_document = Mock() mock_document.find_item = Mock(side_effect=DoorstopError) # Act importer._itemize(header, data, mock_document) # pylint: disable=W0212 # Assert self.assertEqual(2, mock_add_item.call_count)
def test_itemize_with_mapping(self, mock_add_item): """Verify item data can be converted to items.""" header = ['myid', 'text', 'links', 'ext1'] data = [['req1', 'text1', '', 'val1'], ['req2', 'text2', 'sys1,sys2', None]] mock_document = Mock() mapping = {'MyID': 'uid'} # Act importer._itemize(header, data, mock_document, mapping=mapping) # pylint: disable=W0212 # Assert self.assertEqual(2, mock_add_item.call_count)
def test_itemize_explicit_inactive(self, mock_add_item): """Verify item data can be converted to items (explicit inactive).""" header = ['uid', 'text', 'links', 'ext1', 'active'] data = [['req2', '', '', False, False]] mock_document = Mock() mock_document.prefix = 'PREFIX' # Act importer._itemize(header, data, mock_document) # Assert args, kwargs = mock_add_item.call_args self.assertEqual('PREFIX', args[0]) self.assertEqual('req2', args[1]) expected_attrs = {'active': False, 'ext1': False, 'links': [], 'text': ''} self.assertEqual(expected_attrs, kwargs['attrs'])
def test_itemize(self, mock_add_item): """Verify item data can be converted to items.""" header = ['uid', 'text', 'links', 'ext1'] data = [['req1', 'text1', '', 'val1'], ['req2', '', 'sys1,sys2', False]] mock_document = Mock() mock_document.prefix = 'PREFIX' # Act importer._itemize(header, data, mock_document) # Assert self.assertEqual(2, mock_add_item.call_count) args, kwargs = mock_add_item.call_args self.assertEqual('PREFIX', args[0]) self.assertEqual('req2', args[1]) expected_attrs = {'ext1': False, 'links': ['sys1', 'sys2'], 'text': ''} self.assertEqual(expected_attrs, kwargs['attrs']) self.assertIs(mock_document, kwargs['document'])
def test_itemize_explicit_inactive(self, mock_add_item): """Verify item data can be converted to items (explicit inactive).""" header = ['uid', 'text', 'links', 'ext1', 'active'] data = [['req2', '', '', False, False]] mock_document = Mock() mock_document.prefix = 'PREFIX' # Act importer._itemize(header, data, mock_document) # pylint: disable=W0212 # Assert args, kwargs = mock_add_item.call_args self.assertEqual('PREFIX', args[0]) self.assertEqual('req2', args[1]) expected_attrs = {'active': False, 'ext1': False, 'links': [], 'text': ''} self.assertEqual(expected_attrs, kwargs['attrs'])
def test_itemize(self, mock_add_item): """Verify item data can be converted to items.""" header = ['uid', 'text', 'links', 'ext1'] data = [['req1', 'text1', '', 'val1'], ['req2', '', 'sys1,sys2', False]] mock_document = Mock() mock_document.prefix = 'PREFIX' # Act importer._itemize(header, data, mock_document) # pylint: disable=W0212 # Assert self.assertEqual(2, mock_add_item.call_count) args, kwargs = mock_add_item.call_args self.assertEqual('PREFIX', args[0]) self.assertEqual('req2', args[1]) expected_attrs = {'ext1': False, 'links': ['sys1', 'sys2'], 'text': ''} self.assertEqual(expected_attrs, kwargs['attrs']) self.assertIs(mock_document, kwargs['document'])
def test_itemize_new_rows(self, mock_add_item): """Verify items can be added from item data blank UIDs.""" header = ['uid', 'text', 'links', 'ext1'] data = [ ['req1', 'text1', '', 'val1'], ['req2', '', 'sys1,sys2', False], [None, 'A new item.', '', ''], # blank UID: None ['', 'A new item.', '', ''], # blank UID: empty [' ', 'A new item.', '', ''], # blank UID: whitespace ['', '', '', ''], # skipped ['...', 'Another new item.', '', ''], # placeholder UID ] mock_document = Mock() mock_document.prefix = 'PREFIX' mock_document.next_number = 3 mock_document.digits = 3 # Act importer._itemize(header, data, mock_document) # pylint: disable=W0212 # Assert self.assertEqual(6, mock_add_item.call_count)
def test_itemize_new_rows(self, mock_add_item): """Verify items can be added from item data blank UIDs.""" header = ['uid', 'text', 'links', 'ext1'] data = [ ['req1', 'text1', '', 'val1'], ['req2', '', 'sys1,sys2', False], [None, 'A new item.', '', ''], # blank UID: None ['', 'A new item.', '', ''], # blank UID: empty [' ', 'A new item.', '', ''], # blank UID: whitespace ['', '', '', ''], # skipped ['...', 'Another new item.', '', ''], # placeholder UID ] mock_document = Mock() mock_document.prefix = 'PREFIX' mock_document.next_number = 3 mock_document.digits = 3 # Act importer._itemize(header, data, mock_document) # Assert self.assertEqual(6, mock_add_item.call_count)
def test_itemize_invalid(self): """Verify item data can include invalid values.""" header = ['uid', 'text', 'links', 'ext1'] data = [['req1', 'text1', '', 'val1'], ['invalid']] mock_document = Mock() importer._itemize(header, data, mock_document)