def test_apply_with_empty_cell_data(self): # given: cell_conversion = LinkedIdentityCellConversion('item.item_number', 'line_order') # and: metadata = MetadataEntity() items = ['item_no_56', 'item_no_199'] metadata.add_links('line_order', items) # when: cell_conversion.apply(metadata, '') # then: actual_items = metadata.get_links('line_order') self.assertEqual(2, len(actual_items)) # and: expected_ids = [id for id in items] for expected_id in expected_ids: self.assertTrue(expected_id in actual_items, f'[{expected_id}] not in list.') self.assertFalse('' in actual_items, f" '' should not be in the list.")
def test_add_links(self): # given: metadata = MetadataEntity() # when: new_links = ['73f909', '83fddf1', '9004811'] metadata.add_links('profile', new_links) # then: profile_links = metadata.get_links('profile') self.assertIsNotNone(profile_links) self.assertCountEqual(new_links, profile_links)
def test_add_links_multiple_times(self): # given: metadata = MetadataEntity() # and: batch_1 = ['78de112', '963fefed'] batch_2 = ['2daab01'] # when: metadata.add_links('item', batch_1) metadata.add_links('item', batch_2) # then: item_links = metadata.get_links('item') self.assertIsNotNone(item_links) self.assertCountEqual(batch_1 + batch_2, item_links)
def test_apply_with_previous_entry(self): # given: cell_conversion = LinkedIdentityCellConversion('item.item_number', 'line_order') # and: metadata = MetadataEntity() items = ['item_no_56', 'item_no_199'] metadata.add_links('line_order', items) # when: cell_conversion.apply(metadata, 'item_no_721') # then: actual_items = metadata.get_links('line_order') self.assertEqual(3, len(actual_items)) # and: expected_ids = [id for id in items] expected_ids.append('item_no_721') for expected_id in expected_ids: self.assertTrue(expected_id in actual_items, f'[{expected_id}] not in list.')
def apply(self, metadata: MetadataEntity, cell_data): if self.main_category is None: raise UnknownMainCategory() if cell_data: links = self.converter.convert(cell_data) metadata.add_links(self.main_category, links)