def test_set_selection(self): service = SelectionService() provider = SimpleListProvider(items=range(10)) service.add_selection_provider(provider) provider_id = provider.provider_id selection = service.get_selection(provider_id) self.assertTrue(selection.is_empty()) new_selection = [5, 6, 3] service.set_selection(provider_id, new_selection) selection = service.get_selection(provider_id) self.assertFalse(selection.is_empty()) # We can't assume that the order of the items in the selection we set # remains stable. self.assertEqual(selection.items, new_selection) self.assertEqual(selection.indices, selection.items)
def test_set_selection(self): service = SelectionService() provider = SimpleListProvider(items=range(10)) service.add_selection_provider(provider) provider_id = provider.provider_id selection = service.get_selection(provider_id) self.assertTrue(selection.is_empty()) new_selection = [5, 6, 3] service.set_selection(provider_id, new_selection) selection = service.get_selection(provider_id) self.assertFalse(selection.is_empty()) # We can't assume that the order of the items in the selection we set # remains stable. self.assertItemsEqual(selection.items, new_selection) self.assertEqual(selection.indices, selection.items)
def test_ignore_missing(self): # What we are really testing here is that the selection service # passes the keyword argument to the selection provider. It's the # selection provider responsibility to ignore missing elements, or # raise an exception. service = SelectionService() provider = SimpleListProvider(items=list(range(10))) service.add_selection_provider(provider) new_selection = [0, 11, 1] provider_id = provider.provider_id service.set_selection(provider_id, new_selection, ignore_missing=True) selection = service.get_selection(provider_id) self.assertFalse(selection.is_empty()) self.assertEqual(selection.items, [0, 1]) new_selection = [0, 11, 1] with self.assertRaises(ValueError): service.set_selection(provider_id, new_selection, ignore_missing=False)
def test_ignore_missing(self): # What we are really testing here is that the selection service # passes the keyword argument to the selection provider. It's the # selection provider responsibility to ignore missing elements, or # raise an exception. service = SelectionService() provider = SimpleListProvider(items=range(10)) service.add_selection_provider(provider) new_selection = [0, 11, 1] provider_id = provider.provider_id service.set_selection(provider_id, new_selection, ignore_missing=True) selection = service.get_selection(provider_id) self.assertFalse(selection.is_empty()) self.assertItemsEqual(selection.items, [0, 1]) new_selection = [0, 11, 1] with self.assertRaises(ValueError): service.set_selection(provider_id, new_selection, ignore_missing=False)
def test_selection_id_not_registered(self): service = SelectionService() with self.assertRaises(ProviderNotRegisteredError): service.set_selection(provider_id='not-existent', items=[])