示例#1
0
 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):
     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']
示例#5
0
文件: test_toc.py 项目: louika/vivi
 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)
示例#6
0
 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
示例#7
0
 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
示例#12
0
 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)
示例#13
0
 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
示例#15
0
 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
示例#18
0
 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
示例#19
0
文件: test_rule.py 项目: louika/vivi
    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)
示例#21
0
 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
示例#22
0
    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)
示例#23
0
 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')
示例#24
0
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'))
 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')