def setUp(self): from zeit.content.volume.volume import Volume super(VolumeReferenceTest, self).setUp() volume = Volume() volume.teaserText = 'original' self.repository['testvolume'] = volume self.volume = self.repository['testvolume']
def setUp(self): super(TocBrowserTest, self).setUp() # Create the volume object with the mock IConnector volume = Volume() volume.year = 2015 volume.volume = 1 volume.product = zeit.cms.content.sources.Product(u'ZEI') self.article_title = 'Ein Test Titel' self.ressort_names = ['dossier', 'politik'] self.article_page = 1 zeit.cms.content.add.find_or_create_folder('2015', '01') self.repository['2015']['01']['ausgabe'] = volume # Now use the mock ITocConnector to mock the archive folders and the # article toc_connector = zope.component.getUtility( zeit.content.volume.interfaces.ITocConnector) self.zca.patch_utility(toc_connector, zeit.connector.interfaces.IConnector) with zeit.cms.testing.site(self.getRootFolder()): for ressort_name in self.ressort_names: zeit.cms.content.add.find_or_create_folder('ZEI', '2015', '01', ressort_name) with zeit.cms.testing.interaction(): article = create_article() article.year = 2015 article.volume = 1 article.title = self.article_title article.page = self.article_page self.repository['ZEI']['2015']['01']['politik'][ 'test_artikel'] = article self.zca.reset()
def setUp(self): super(TestReference, self).setUp() volume = Volume() volume.year = 2015 volume.volume = 1 zeit.cms.content.add.find_or_create_folder('2015', '01') self.repository['2015']['01']['ausgabe'] = volume
def setUp(self): super(TocBrowserTest, self).setUp() # Create the volume object with the mock IConnector volume = Volume() volume.year = 2015 volume.volume = 1 volume.product = zeit.cms.content.sources.Product(u'ZEI') self.article_title = 'Ein Test Titel' self.ressort_names = ['dossier', 'politik'] self.article_page = 1 zeit.cms.content.add.find_or_create_folder('2015', '01') self.repository['2015']['01']['ausgabe'] = volume # Now use the mock ITocConnector to mock the archive folders and the # article toc_connector = zope.component.getUtility( zeit.content.volume.interfaces.ITocConnector) sm = zope.component.getSiteManager() sm.registerUtility(toc_connector, zeit.connector.interfaces.IConnector) with zeit.cms.testing.site(self.getRootFolder()): for ressort_name in self.ressort_names: zeit.cms.content.add.find_or_create_folder( 'ZEI', '2015', '01', ressort_name) with zeit.cms.testing.interaction(): article = create_article() article.year = 2015 article.volume = 1 article.title = self.article_title article.page = self.article_page self.repository['ZEI']['2015']['01']['politik'][ 'test_artikel'] = article sm.registerUtility( zope.component.getGlobalSiteManager().getUtility( zeit.connector.interfaces.IConnector), zeit.connector.interfaces.IConnector)
def setUp(self): super(TestWebtrekkQuery, self).setUp() volume = Volume() volume.year = 2019 volume.volume = 1 info = zeit.cms.workflow.interfaces.IPublishInfo(volume) info.date_first_released = datetime(2019, 1, 1, tzinfo=pytz.UTC) self.volume = volume
def setUp(self): super(TestVolumeCoverWidget, self).setUp() volume = Volume() volume.year = 2015 volume.volume = 1 volume.product = zeit.cms.content.sources.Product(u'ZEI') zeit.cms.content.add.find_or_create_folder('2015', '01') self.repository['2015']['01']['ausgabe'] = volume
def setUp(self): super(TestWebtrekkQuery, self).setUp() volume = Volume() volume.year = 2019 volume.volume = 1 info = zeit.cms.workflow.interfaces.IPublishInfo(volume) info.date_first_released = datetime( 2019, 1, 1, tzinfo=pytz.UTC) self.volume = volume
def test_no_publish_date_returns_None(self): volume = Volume() year = 2015 name = 1 volume.year = year volume.volume = name volume.product = zeit.cms.content.sources.Product(u'ZEI') self.elastic.search.return_value = [{'url': '/2015/02/ausgabe'}] self.assertEqual(None, volume.next) self.assertEqual(None, volume.previous)
def setUp(self): super(PublishAllContent, self).setUp() elastic = mock.Mock() elastic.search.return_value = zeit.cms.interfaces.Result() self.zca.patch_utility(elastic, zeit.find.interfaces.ICMSSearch) volume = Volume() volume.year = 2015 volume.volume = 1 volume.product = zeit.cms.content.sources.Product(u'ZEI') self.repository['ausgabe'] = volume
def setUp(self): super(PublishAllContent, self).setUp() elastic = mock.Mock() elastic.search.return_value = zeit.cms.interfaces.Result() zope.component.getGlobalSiteManager().registerUtility( elastic, zeit.find.interfaces.ICMSSearch) volume = Volume() volume.year = 2015 volume.volume = 1 volume.product = zeit.cms.content.sources.Product(u'ZEI') self.repository['ausgabe'] = volume
def setUp(self): super(TestVolume, self).setUp() volume = Volume() volume.year = 2015 volume.volume = 1 volume.product = zeit.cms.content.sources.Product(u'ZEI') self.repository['2015'] = Folder() self.repository['2015']['01'] = Folder() # Add a cover image-group self.repository['imagegroup'] = create_image_group() volume.set_cover('ipad', 'ZEI', self.repository['imagegroup']) self.repository['2015']['01']['ausgabe'] = volume
def create_volume(self, year, name): volume = Volume() volume.year = year volume.volume = name volume.product = zeit.cms.content.sources.Product(u'ZEI') volume.date_digital_published = datetime( year, name, 1, tzinfo=pytz.UTC) year = str(year) name = '%02d' % name self.repository[year] = Folder() self.repository[year][name] = Folder() self.repository[year][name]['ausgabe'] = volume
def setUp(self): self.elastic = mock.Mock() self.zca.patch_utility(self.elastic, zeit.find.interfaces.ICMSSearch) super(VolumeAdminBrowserTest, self).setUp() volume = Volume() volume.year = 2015 volume.volume = 1 volume.product = zeit.cms.content.sources.Product(u'ZEI') zeit.cms.content.add.find_or_create_folder('2015', '01') self.repository['2015']['01']['ausgabe'] = volume content = ExampleContentType() content.year = 2015 content.volume = 1 content.product = zeit.cms.content.sources.Product(u'ZEI') self.repository['testcontent'] = content IPublishInfo(self.repository['testcontent']).urgent = True
def setUp(self): self.elastic = mock.Mock() zope.component.getGlobalSiteManager().registerUtility( self.elastic, zeit.find.interfaces.ICMSSearch) super(VolumeAdminBrowserTest, self).setUp() volume = Volume() volume.year = 2015 volume.volume = 1 volume.product = zeit.cms.content.sources.Product(u'ZEI') zeit.cms.content.add.find_or_create_folder('2015', '01') self.repository['2015']['01']['ausgabe'] = volume content = ExampleContentType() content.year = 2015 content.volume = 1 content.product = zeit.cms.content.sources.Product(u'ZEI') self.repository['testcontent'] = content IPublishInfo(self.repository['testcontent']).urgent = True
def test_IVolume_content_returns_referenced_object(self): from zeit.content.volume.volume import Volume volume = Volume() volume.year = 2015 volume.volume = 1 volume.product = zeit.cms.content.sources.Product(u'ZEI') zeit.cms.content.add.find_or_create_folder('2015', '01') self.repository['2015']['01']['ausgabe'] = volume block = self.get_factory(self.get_article(), 'volume')() block.references = block.references.create(volume) r = Rule(""" from zeit.content.volume.interfaces import IVolume applicable(True) error_if(IVolume.providedBy(content[0]), u'bar') """) s = r.apply(block, zeit.edit.interfaces.IRuleGlobs(block)) self.assertEqual(zeit.edit.rule.ERROR, s.status)
def test_reference_honors_ICommonMetadata_xml_format(self): from zeit.content.volume.volume import Volume from zeit.cms.repository.folder import Folder volume = Volume() volume.year = 2015 volume.volume = 1 volume.teaserText = 'original' volume.product = zeit.cms.content.sources.Product(u'ZEI') self.repository['2015'] = Folder() self.repository['2015']['01'] = Folder() self.repository['2015']['01']['ausgabe'] = volume self.repository['2015']['01'][ 'index'] = zeit.content.cp.centerpage.CenterPage() reference = zope.component.getAdapter( volume, zeit.cms.content.interfaces.IXMLReference, name='related') self.assertEqual(volume.teaserText, reference.description)
def create_volume(self, year, name): volume = Volume() volume.year = year volume.volume = name volume.product = zeit.cms.content.sources.Product(u'ZEI') volume.date_digital_published = datetime(year, name, 1, tzinfo=pytz.UTC) year = str(year) name = '%02d' % name self.repository[year] = Folder() self.repository[year][name] = Folder() self.repository[year][name]['ausgabe'] = volume
def setUp(self): super(TestVolumeCovers, self).setUp() self.repository['imagegroup'] = create_image_group() self.cover = self.repository['imagegroup'] self.volume = Volume() self.volume.product = zeit.cms.content.sources.Product(u'ZEI')
class TestVolumeCovers(zeit.content.volume.testing.FunctionalTestCase): def setUp(self): super(TestVolumeCovers, self).setUp() self.repository['imagegroup'] = create_image_group() self.cover = self.repository['imagegroup'] self.volume = Volume() self.volume.product = zeit.cms.content.sources.Product(u'ZEI') def add_ipad_cover(self, product_id='ZEI'): node = lxml.objectify.E.cover(href='http://xml.zeit.de/imagegroup/', id='ipad', product_id=product_id) lxml.objectify.deannotate(node[0], cleanup_namespaces=True) self.volume.xml.covers.append(node) def test_set_raises_for_invalid_product(self): with self.assertRaises(ValueError): self.volume.set_cover('ipad', 'TEST', self.cover) def test_stores_uniqueId_in_xml_of_volume(self): self.volume.set_cover('ipad', 'ZEI', self.repository['imagegroup']) self.assertEqual( '<covers xmlns:py="http://codespeak.net/lxml/objectify/pytype">' '<cover href="http://xml.zeit.de/imagegroup/" id="ipad" ' 'product_id="ZEI"/>' '</covers>', lxml.etree.tostring(self.volume.xml.covers, encoding=six.text_type)) def test_deletes_existing_node_if_value_is_None(self): self.volume.set_cover('ipad', 'ZEI', self.repository['imagegroup']) self.volume.set_cover('ipad', 'ZEI', None) self.assertEqual( '<covers xmlns:py="http://codespeak.net/lxml/objectify/pytype"/>', lxml.etree.tostring(self.volume.xml.covers, encoding=six.text_type)) def test_raises_value_error_if_invalid_product_id_used_in_set_cover(self): with self.assertRaises(ValueError): self.volume.set_cover('ipad', 'TEST', self.repository['imagegroup']) def test_returns_none_if_invalid_product_id_used_in_get_cover(self): self.assertEqual(None, self.volume.get_cover('ipad', 'TEST')) def test_resolves_given_product_id(self): self.add_ipad_cover('ZMLB') self.assertEqual(self.cover, self.volume.get_cover('ipad', 'ZMLB')) def test_uses_product_of_volume_if_none_is_given(self): self.add_ipad_cover() self.assertEqual(self.cover, self.volume.get_cover('ipad')) def test_returns_main_product_if_no_dependent_cover_present(self): self.add_ipad_cover() self.assertEqual(self.cover, self.volume.get_cover('ipad', 'ZMLB'))
class TestVolumeCovers(zeit.content.volume.testing.FunctionalTestCase): def setUp(self): super(TestVolumeCovers, self).setUp() self.repository['imagegroup'] = create_image_group() self.cover = self.repository['imagegroup'] self.volume = Volume() self.volume.product = zeit.cms.content.sources.Product(u'ZEI') def add_ipad_cover(self, product_id='ZEI'): node = lxml.objectify.E.cover( href='http://xml.zeit.de/imagegroup/', id='ipad', product_id=product_id) lxml.objectify.deannotate(node[0], cleanup_namespaces=True) self.volume.xml.covers.append(node) def test_set_raises_for_invalid_product(self): with self.assertRaises(ValueError): self.volume.set_cover('ipad', 'TEST', self.cover) def test_stores_uniqueId_in_xml_of_volume(self): self.volume.set_cover('ipad', 'ZEI', self.repository['imagegroup']) self.assertEqual( '<covers xmlns:py="http://codespeak.net/lxml/objectify/pytype">' '<cover href="http://xml.zeit.de/imagegroup/" id="ipad" ' 'product_id="ZEI"/>' '</covers>', lxml.etree.tostring(self.volume.xml.covers)) def test_deletes_existing_node_if_value_is_None(self): self.volume.set_cover('ipad', 'ZEI', self.repository['imagegroup']) self.volume.set_cover('ipad', 'ZEI', None) self.assertEqual( '<covers xmlns:py="http://codespeak.net/lxml/objectify/pytype"/>', lxml.etree.tostring(self.volume.xml.covers)) def test_raises_value_error_if_invalid_product_id_used_in_set_cover(self): with self.assertRaises(ValueError): self.volume.set_cover('ipad', 'TEST', self.repository[ 'imagegroup']) def test_returns_none_if_invalid_product_id_used_in_get_cover(self): self.assertEqual(None, self.volume.get_cover('ipad', 'TEST')) def test_resolves_given_product_id(self): self.add_ipad_cover('ZMLB') self.assertEqual(self.cover, self.volume.get_cover('ipad', 'ZMLB')) def test_uses_product_of_volume_if_none_is_given(self): self.add_ipad_cover() self.assertEqual(self.cover, self.volume.get_cover('ipad')) def test_returns_main_product_if_no_dependent_cover_present(self): self.add_ipad_cover() self.assertEqual(self.cover, self.volume.get_cover('ipad', 'ZMLB'))