def test_add_to_deleted_not_shared(self): """Cannot delete items that aren't shared.""" item = SharedItem() entry = {'feed_link': 'atom-deleted.xml'} item.assign_feeds(**entry) self.assertEqual(len(item.feed_type), 0) self.assertTrue('deleted' not in item.feed_type)
def test_add_to_selected_not_shared(self): """A shared item shouldn't be selected if not shared""" item = SharedItem() entry = {'feed_link': 'atom-selected.xml'} item.assign_feeds(**entry) self.assertEqual(len(item.feed_type), 0) self.assertTrue('selected' not in item.feed_type)
def test_removal_multiple(self): """When multiple items are present in the feed, they will be deleted. """ # Item 1 obj_foo = SharedItem() self.root.shared['foo_uid'] = obj_foo # Item 2 obj_bar = SharedItem() self.root.shared['bar_uid'] = obj_bar # Create the entries feed_items = [] feed_items.append(XML_ENTRY % ('foo', 'foo_uid')) feed_items.append(XML_ENTRY % ('bar', 'bar_uid')) feed = XML_WRAPPER % "".join(feed_items) # Set up the request request = testing.DummyRequest(body=feed, content_type='application/atom+xml') patcher = patch('mysolr.Solr', FakeSolr) patcher.start() response = delete_items(self.root, request) patcher.stop() self.assertEquals(response.body, 'Removed 2 items.') self.assertEquals(response.code, 200) self.failIf(self.root.shared.get('foo_uid', False)) self.failIf(self.root.shared.get('bar_uid', False))
def test_deleted_item_reshared(self): item = SharedItem() item.feed_type = ['shared', 'deleted'] entry = {'feed_link': 'shared-content.xml'} item.assign_feeds(**entry) self.assertEqual(len(item.feed_type), 1) self.assertTrue('shared' in item.feed_type)
def test_update_items_calling_assignment(self): item = SharedItem() item.assign_feeds = Mock() entry = {'title': 'Test', 'feed_link': 'shared-content.xml'} item.update_from_entry(entry) self.assertTrue(item.assign_feeds.called) item.assign_feeds.assert_called_with(feed_link='shared-content.xml', title='Test')
def test_unused_keyword_args(self): item = SharedItem() entry = { 'feed_link': 'shared-content.xml', 'updated': None, 'foo': 'bar' } item.assign_feeds(**entry) self.assertEqual(len(item.feed_type), 1)
def test_delete_sharing_on_selected_item(self): item = SharedItem() item.feed_type = ['shared', 'selected'] entry = { 'feed_link': 'atom-deleted.xml', 'push_deletion_type': 'featured', } item.assign_feeds(**entry) self.assertEqual(len(item.feed_type), 1) self.assertTrue('deleted' in item.feed_type)
def test_update_items_calling_assignment(self): item = SharedItem() item.assign_feeds = Mock() entry = { 'title': 'Test', 'feed_link': 'shared-content.xml' } item.update_from_entry(entry) self.assertTrue(item.assign_feeds.called) item.assign_feeds.assert_called_with( feed_link='shared-content.xml', title='Test' )
def setUp(self): self.config = testing.setUp() self.config.registry.settings['push.solr_uri'] = 'foo' self.root = Root() self.root.shared = SharedItems() item = SharedItem() uid = 'uuuuid' self.uid = uid item.__name__ = uid item.__parent__ = uid item.feed_type = ['selected', 'deleted'] self.root.shared['uuuuid'] = item self.solr = FakeSolr() self.solr.catalog[uid] = [item] self.item = item
def test_removal_mixed(self): """When multiple items are present in the feed, but only some are present in the database. """ # Item 1 obj_foo = SharedItem() self.root.shared['foo_uid'] = obj_foo # Create the entries feed_items = [] feed_items.append(XML_ENTRY % ('foo', 'foo_uid')) feed_items.append(XML_ENTRY % ('missing', 'missing_uid')) feed = XML_WRAPPER % "".join(feed_items) # Set up the request request = testing.DummyRequest(body=feed, content_type='application/atom+xml') patcher = patch('mysolr.Solr', FakeSolr) patcher.start() response = delete_items(self.root, request) patcher.stop() self.assertEquals( response.body, ('Removed 1 items. ' '1 items could not be found for deletion: missing_uid'), ) self.assertEquals(response.code, 200) self.failIf(self.root.shared.get('foo_uid', False)) self.failIf(self.root.shared.get('bar_uid', False))
def test_removal(self): """When an item is present in the feed, it will be deleted """ obj = SharedItem() obj.__name__ = 'item_uid' obj.__parent__ = self.root.shared self.root.shared['item_uid'] = obj feed_item = XML_ENTRY % ('foo', 'item_uid') feed = XML_WRAPPER % feed_item request = testing.DummyRequest(body=feed, content_type='application/atom+xml') patcher = patch('mysolr.Solr', FakeSolr) patcher.start() response = delete_items(self.root, request) patcher.stop() self.assertEquals(response.body, 'Removed 1 items.') self.assertEquals(response.code, 200) self.failIf(self.root.shared.get('item_uid', False))
def setUp(self): self.item1 = SharedItem() self.item1.feed_type = ['shared', 'deleted'] self.item1.deletion_type = 'featured' self.item2 = SharedItem() self.item2.feed_type = ['shared', 'selected'] self.item3 = SharedItem() self.item3.feed_type = ['shared', 'selected'] self.item4 = SharedItem() self.item4.feed_type = ['shared', 'selected', 'deleted'] self.item4.deletion_type = 'featured' self.container = { 'item1': self.item1, 'item2': self.item2, 'item3': self.item3, 'item4': self.item4, }
def test_removal(self): """When an item is present in the feed, it will be deleted """ obj = SharedItem() obj.__name__ = 'item_uid' obj.__parent__ = self.root.shared self.root.shared['item_uid'] = obj feed_item = XML_ENTRY % ('foo', 'item_uid') feed = XML_WRAPPER % feed_item request = testing.DummyRequest( body=feed, content_type='application/atom+xml') patcher = patch('mysolr.Solr', FakeSolr) patcher.start() response = delete_items(self.root, request) patcher.stop() self.assertEquals(response.body, 'Removed 1 items.') self.assertEquals(response.code, 200) self.failIf(self.root.shared.get('item_uid', False))
def test_add_to_shared(self): entry = {'feed_link': 'shared-content.xml'} item = SharedItem() item.assign_feeds(**entry) self.assertEqual(len(item.feed_type), 1) self.assertTrue('shared' in item.feed_type)