예제 #1
0
 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
예제 #2
0
 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)
예제 #3
0
 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)
예제 #4
0
 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)
예제 #5
0
 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)
예제 #6
0
 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)
예제 #7
0
 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)
예제 #8
0
 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'])
예제 #9
0
 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'])
예제 #10
0
 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'])
예제 #11
0
 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'])
예제 #12
0
 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)
예제 #13
0
 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)
예제 #14
0
 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)