Exemplo n.º 1
0
 def _createContent(self, portal):
     login(portal, PRIVILEGED_USER)
     portal.invokeFactory('Folder', 'mailtest')
     storage = queryUtility(IFriendlyNameStorage)
     target = IUUID(portal.get('mailtest'))
     storage.add(target, 'mailtest')
     logout
Exemplo n.º 2
0
 def test_create_and_populate_partners_group(self):
     helpers.login(self.app, SITE_OWNER_NAME)
     group = create_and_populate_partners_group()
     self.assertTrue(group is not None)
     self.assertEquals(group.getId(), "Official Campaign Partners")
     self.assertEquals(group.getProperty('title'),
                       "Official Campaign Partners")
    def setUp(self):
        self.portal      = self.layer["portal"]
        login(self.layer['app'], SITE_OWNER_NAME)
        add_number_of_each_review_type(
            self.portal, 1, rez_classes=[ReviewMonograph, ReviewJournal])

        self.publication = self.portal["sample-reviews"]["newspapera"]
        self.review_mono = self.portal.portal_catalog.search(
            {"portal_type" :"Review Monograph",
             "path"        :{
                    "query": "/".join(self.publication.getPhysicalPath())
                    }
             }
            )[0].getObject()
        pg = IParentGetter(self.review_mono)
        self.issue_mono = pg.get_parent_object_of_type('Issue')
        self.review_jour = self.portal.portal_catalog.search(
            {"portal_type" :"Review Journal",
             "path"        :{
                    "query": "/".join(self.publication.getPhysicalPath())
                    }
             }
            )[0].getObject()
        pg = IParentGetter(self.review_jour)
        self.issue_jour = pg.get_parent_object_of_type('Issue')
Exemplo n.º 4
0
    def setUp(self):
        """Custom shared utility setup for tests."""
        self.portal = self.layer['portal']
        self.installer = api.portal.get_tool('portal_quickinstaller')
        intids = getUtility(IIntIds)

        login(self.portal, TEST_USER_NAME)
        container = api.content.create(self.portal, type='Folder', id='container')
        self.content1 = api.content.create(container, type='member', id='johndoe',
                                           title="John Doe",
                                           birth_date=datetime.date(1980, 07, 24),
                                           amount=100,
                                           subscription='silver',
                                           languages=('en', 'fr'),
                                           photo=NamedImage(open(TEST_IMAGE).read(),
                                                  contentType='image/png',
                                                  filename=u'logoplone.png'),
                                           )
        self.content2 = api.content.create(container, type='member', id='johnsmith',
                                          title="John Smith",
                                          birth_date=datetime.date(1981, 07, 24),
                                          amount=100,
                                          languages=('en', 'es'),
                                          photo=None,
                                          relatedItems=[RelationValue(intids.getId(self.content1))])
Exemplo n.º 5
0
    def setUp(self):
        self.portal = self.layer["portal"]
        alsoProvides(self.portal.REQUEST, IRecensioLayer)

        login(self.layer['app'], SITE_OWNER_NAME)
        self.pub = self.portal.unrestrictedTraverse(
            '/plone/rezensionen/zeitschriften/francia-recensio')
        self.test_volume_id = self.pub.invokeFactory(
            'Volume', id='test-volume')
        self.test_volume = self.pub.get(self.test_volume_id)
        newid = self.test_volume.invokeFactory('Issue', id='test-issue')
        self.test_issue = self.test_volume.get(newid)
        newid = self.test_issue.invokeFactory(
            'Review Monograph', id='test-review')
        self.test_review = self.test_issue.get(newid)

        # why is RootPhysicalNavigationBreadcrumbs not registered? Doing it
        # manually here
        from plone.app.layout.navigation.interfaces import INavigationRoot
        from Products.CMFPlone.browser.navigation import RootPhysicalNavigationBreadcrumbs
        from Products.CMFPlone.browser.interfaces import INavigationBreadcrumbs
        from zope.publisher.interfaces.http import IHTTPRequest
        sm = self.portal.getSiteManager()
        sm.registerAdapter(factory=RootPhysicalNavigationBreadcrumbs,
                           required=(INavigationRoot, IHTTPRequest),
                           name='breadcrumbs_view',
                           provided=INavigationBreadcrumbs)
Exemplo n.º 6
0
 def _createContent(self, portal):
     login(portal, PRIVILEGED_USER)
     portal.invokeFactory('Folder', 'mailtest')
     storage = queryUtility(IFriendlyNameStorage)
     target = IUUID(portal.get('mailtest'))
     storage.add(target, 'mailtest')
     logout
Exemplo n.º 7
0
 def test_view_unavailable(self):
     login(self.portal, TEST_USER_NAME)
     self.portal.invokeFactory('Folder', 'folder')
     folder = getattr(self.portal, 'folder')
     view = queryMultiAdapter((folder, self.request),
                              name='solgemafullcalendar_view')
     self.assertTrue(view is None)
Exemplo n.º 8
0
 def setUp(self):
     self.app = self.layer['app']
     self.portal = self.layer['portal']
     self.qi_tool = getToolByName(self.portal, 'portal_quickinstaller')
     login(self.app, SITE_OWNER_NAME)
     self.portal.invokeFactory('Document', 'doc', title="My doc")
     self.portal.invokeFactory('Document', 'doc2')
Exemplo n.º 9
0
 def setUp(self):
     self.portal = self.layer['portal']
     self.app = self.layer['app']
     setRoles(self.portal, TEST_USER_ID, ['Manager', 'Member'])
     helpers.login(self.portal, TEST_USER_NAME)
     self.browser = Browser(self.app)
     self.rabbitctl = self.layer['rabbitctl']
Exemplo n.º 10
0
 def test_get_my_profiles_applicant(self):
     helpers.login(self.portal, 'harold')
     self.assertEquals(self.hw_view.get_my_profiles(),
                       [{'url': self.org.absolute_url(),
                         'Title': self.org.Title(),
                         'portal_type': self.org.portal_type,
                         'review_state': 'approved_phase_1'}])
Exemplo n.º 11
0
 def test_create_and_populate_partners_group(self):
     helpers.login(self.app, SITE_OWNER_NAME)
     group = create_and_populate_partners_group()
     self.assertTrue(group is not None)
     self.assertEquals(group.getId(), "Official Campaign Partners")
     self.assertEquals(
         group.getProperty('title'), "Official Campaign Partners")
    def setUp(self):
        """Custom shared utility setup for tests."""
        self.portal = self.layer['portal']
        self.installer = api.portal.get_tool('portal_quickinstaller')
        intids = getUtility(IIntIds)

        login(self.portal, TEST_USER_NAME)
        container = api.content.create(self.portal, type='Folder', id='container')
        self.content1 = api.content.create(container, type='member', id='johndoe',
                                           title="John Doe",
                                           birth_date=datetime.date(1980, 7, 24),
                                           amount=100,
                                           subscription='silver',
                                           languages=('en', 'fr'),
                                           biography=u"Longtemps, je me suis couché de bonne heure",
                                           photo=NamedImage(open(TEST_IMAGE).read(),
                                                            contentType='image/png',
                                                            filename=u'logoplone.png'),
                                           )
        self.content2 = api.content.create(container, type='member', id='johnsmith',
                                           title="John Smith",
                                           birth_date=datetime.date(1981, 07, 24),
                                           amount=100,
                                           languages=('en', 'es'),
                                           photo=None,
                                           biography=u"""Je forme une entreprise qui n'eut jamais d'exemple
et dont l’exécution n'aura point d’imitateur.
Je veux montrer à mes semblables un homme dans toute la vérité de la nature ; et cet homme
ce sera moi.""",
                                           relatedItems=[RelationValue(intids.getId(self.content1))])
 def test_site_with_one_package_and_one_image(self):
     portal = self.layer['portal']
     setRoles(portal, TEST_USER_ID, ['Manager'])
     login(portal, TEST_USER_NAME)
     ideeSejour = getattr(portal, 'idee-sejour')
     package = api.content.create(
         type='Package',
         id='package1',
         title='My Package',
         container=ideeSejour)
     api.content.transition(obj=package, transition='publish')
     api.content.create(
         type='Image',
         id='img1',
         title='My Image',
         container=package)
     api.content.create(
         type='Vignette',
         id='vign1',
         title='My Vignette',
         container=package)
     raw_data = self.export_packages_view()
     if 'DUMP_FILE' in os.environ:
         with open(testing.PACKAGE_TEST_PATH, 'w') as fd:
             fd.write(raw_data)
     data = json.loads(raw_data)
     self.assertNotEqual([], data)
     self.assertEqual(len(data), 3)
Exemplo n.º 14
0
 def setUp(self):
     super(TestEditDataJson, self).setUp()
     self.portal = self.layer["portal"]
     self.request = self.layer["request"]
     setRoles(self.portal, TEST_USER_ID, ["Manager"])
     login(self.portal, TEST_USER_NAME)
     self.request.set("taxonomy", "collective.taxonomy.test")
     self.view = self.portal.restrictedTraverse("@@taxonomy-edit-data")
Exemplo n.º 15
0
 def test_toggle_sets_outdated(self):
     """Calling the toggle view on a non-outdated object sets it to
     outdated."""
     helpers.login(self.layer['app'], SITE_OWNER_NAME)
     toggleview = self.testpage.restrictedTraverse('object_toggle_outdated')
     self.assertFalse(toggleview.outdated)
     toggleview()
     self.assertTrue(toggleview.outdated)
Exemplo n.º 16
0
 def test_toggle_on_file_redirects_to_view(self):
     """Using the toggle view on a file should not redirect to download but
     to view."""
     helpers.login(self.layer['app'], SITE_OWNER_NAME)
     toggleview = self.testfile.restrictedTraverse('object_toggle_outdated')
     toggleview()
     self.assertTrue(
         toggleview.request.response.getHeader('Location').endswith('view'))
Exemplo n.º 17
0
 def test_view_available(self):
     directlyProvides(self.request, ISolgemaFullcalendarLayer)
     login(self.portal, TEST_USER_NAME)
     self.portal.invokeFactory('Folder', 'folder')
     folder = getattr(self.portal, 'folder')
     view = queryMultiAdapter((folder, self.request),
                              name='solgemafullcalendar_view')
     self.assertTrue(view is not None)
Exemplo n.º 18
0
 def setUp(self):
     super(TestTool, self).setUp()
     self.portal = self.layer['portal']
     login(self.portal, TEST_USER_NAME)
     self.workspace = api.content.create(self.portal, 'Folder', 'Workspace')
     self.folder = api.content.create(self.workspace, 'Folder', 'folder')
     self.subscriber = ('member', TEST_USER_NAME)
     self.portal.portal_workflow._default_chain = ('plone_workflow',)
Exemplo n.º 19
0
 def test_reviewer_rejects_organisation(self):
     helpers.login(self.portal, 'Site Administrator')
     self.assertIn('test-organisation', self.organisations.objectIds())
     self.org.restrictedTraverse('@@reject')()
     self.assertNotIn('test-organisation', self.organisations.objectIds())
     self.assertEqual(len(self.sent_mails), 1, msg='Mail not sent')
     self.assertIn('*****@*****.**', self.sent_mails[0])
     self.assertIn('rejected', self.sent_mails[0])
 def setUp(self):
     super(TestActions, self).setUp()
     portal = self.portal = self.layer['portal']
     login(portal, TEST_USER_NAME)
     self.workspace = api.content.create(portal, 'Folder', 'Workspace')
     self.folder = api.content.create(self.workspace, 'Folder', 'folder')
     api.user.get(TEST_USER_ID).setProperties({'email': '*****@*****.**'})
     portal.email_from_name, portal.email_from_address = 'Test site', '*****@*****.**'
Exemplo n.º 21
0
 def _clear_export_files(self):
     login(self.layer['app'], SITE_OWNER_NAME)
     exporters = [factory() for name, factory in
                  getFactoriesFor(IRecensioExporter)]
     for exporter in exporters:
         old_export_file = self.portal.get(exporter.export_filename)
         if old_export_file:
             api.content.delete(old_export_file)
     login(self.portal, TEST_USER_NAME)
Exemplo n.º 22
0
 def test_get_my_profiles_applicant(self):
     helpers.login(self.portal, 'harold')
     self.assertEquals(self.hw_view.get_my_profiles(),
                       [{
                           'url': self.org.absolute_url(),
                           'Title': self.org.Title(),
                           'portal_type': self.org.portal_type,
                           'review_state': 'approved_phase_1'
                       }])
    def test_delete_action(self):
        login(self.portal, TEST_USER_NAME)
        directory = self.portal.mydirectory

        self.assertIn('rambo', directory)
        self.portal.REQUEST.form['uids'] = [directory.rambo.UID()]
        delete_view = directory.unrestrictedTraverse('@@delete_selection')
        delete_view()
        self.assertNotIn('rambo', directory)
Exemplo n.º 24
0
 def test_toggle_clears_outdated(self):
     """Calling the toggle view on an outdated object sets it to
     non-outdated."""
     helpers.login(self.layer['app'], SITE_OWNER_NAME)
     IAnnotations(self.testpage)[ANNOTATION_KEY] = True
     toggleview = self.testpage.restrictedTraverse('object_toggle_outdated')
     self.assertTrue(toggleview.outdated)
     toggleview()
     self.assertFalse(toggleview.outdated)
Exemplo n.º 25
0
    def test_creator_cannot_submit_incomplete_organisation(self):
        utils._send_emails = False
        helpers.login(self.portal, 'Site Administrator')
        self.wftool.doActionFor(self.org, 'approve_phase_1')
        utils._send_emails = True

        helpers.login(self.portal, self.creator_id)
        self.assertNotIn(
            'submit',
            [a['id'] for a in self.wftool.listActions(object=self.org)])
Exemplo n.º 26
0
 def test_toggle_on_file_redirects_to_referer(self):
     """Using the toggle view on a file should redirect to the referer if it
     is set."""
     helpers.login(self.layer['app'], SITE_OWNER_NAME)
     self.portal.REQUEST.environ['REFERER'] = 'http://nohost/whereicamefrom'
     toggleview = self.testfile.restrictedTraverse('object_toggle_outdated')
     toggleview()
     self.assertEquals(
         toggleview.request.response.getHeader('Location'),
         'http://nohost/whereicamefrom')
Exemplo n.º 27
0
    def test_creator_cannot_submit_incomplete_organisation(self):
        utils._send_emails = False
        helpers.login(self.portal, 'Site Administrator')
        self.wftool.doActionFor(self.org, 'approve_phase_1')
        utils._send_emails = True

        helpers.login(self.portal, self.creator_id)
        self.assertNotIn(
            'submit',
            [a['id'] for a in self.wftool.listActions(object=self.org)])
Exemplo n.º 28
0
 def test_delete_conversation_no_testbrowser(self):
     self._create_message("testuser1", "testuser2", "Message Text", created=now)
     self.assertEqual(len(self._conversations("testuser1")), 1)
     self.request.form = {"user": "******"}
     login(self.portal, "testuser1")
     view = api.content.get_view(context=self.portal, request=self.request, name="delete-conversation")
     content = json.loads(view())
     self.assertEqual(content, {u"result": True})
     self.assertEqual(len(self._conversations("testuser1")), 0)
     self.request.form = {}
Exemplo n.º 29
0
    def test_favorite_actions(self):
        login(self.portal, TEST_USER_NAME)
        self.portal.doc.restrictedTraverse('@@add-favorite')()
        storage = IFavoriteStorage(self.portal)
        self.assertEqual(len(storage.get_favorites()), 1)
        self.assertEqual(len(storage.list_favorites(TEST_USER_ID)), 1)
        self.assertEqual(len(storage.list_favorites('toto')), 0)

        self.portal.doc.restrictedTraverse('@@remove-favorite')()
        self.assertEqual(len(storage.list_favorites(TEST_USER_ID)), 0)
        self.assertEqual(len(storage.get_favorites()), 0)
Exemplo n.º 30
0
 def test_reviewer_rejects_organisation(self):
     helpers.login(self.portal, 'Site Administrator')
     self.assertIn(
         'test-organisation',
         self.organisations.objectIds())
     self.org.restrictedTraverse('@@reject')()
     self.assertNotIn(
         'test-organisation',
         self.organisations.objectIds())
     self.assertEqual(len(self.sent_mails), 1, msg='Mail not sent')
     self.assertIn('*****@*****.**', self.sent_mails[0])
     self.assertIn('rejected', self.sent_mails[0])
Exemplo n.º 31
0
 def setUp(self):
     self.app = self.layer['app']
     self.portal = self.layer['portal']
     helpers.login(self.app, SITE_OWNER_NAME)
     self.org = api.content.create(self.portal.get('organisations'),
                                   type='osha.hwccontent.organisation',
                                   title='Test Organisation',
                                   id='test-organisation',
                                   key_email=u'*****@*****.**',
                                   key_name=u'Harold van Testinger')
     api.content.transition(self.org, 'approve_phase_1')
     self.hw_view = self.portal.restrictedTraverse('hw_view')
Exemplo n.º 32
0
 def test_delete_message_no_testbrowser(self):
     self._create_message("testuser1", "testuser2", "Message Text", created=now)
     inbox = self.portal.ploneintranet_messaging["testuser1"]
     message_id = inbox["testuser2"].keys()[0]
     self.request.form = {"user": "******", "message": str(message_id)}
     login(self.portal, "testuser1")
     view = api.content.get_view(context=self.portal, request=self.request, name="delete-message")
     content = json.loads(view())
     self.assertEqual(content["result"], True)
     self.assertIn(str(message_id), content["message"])
     self.assertNotIn(message_id, inbox["testuser2"])
     self.request.form = {}
Exemplo n.º 33
0
    def setUp(self):
        self.portal = self.layer['portal']

        login(self.layer['app'], SITE_OWNER_NAME)
        add_number_of_each_review_type(
            self.portal, 1, rez_classes=[ReviewMonograph, ReviewJournal])

        self.newspapera = self.portal['sample-reviews']['newspapera']
        self.issue_2_a = self.newspapera['summer']['issue-2']
        self.review_a0 = self.issue_2_a.objectValues()[0]
        self.review_a1 = self.issue_2_a.objectValues()[1]

        login(self.portal, TEST_USER_NAME)
Exemplo n.º 34
0
 def setUp(self):
     self.app = self.layer['app']
     self.portal = self.layer['portal']
     helpers.login(self.app, SITE_OWNER_NAME)
     self.org = api.content.create(
         self.portal.get('organisations'),
         type='osha.hwccontent.organisation',
         title='Test Organisation',
         id='test-organisation',
         key_email=u'*****@*****.**',
         key_name=u'Harold van Testinger')
     api.content.transition(self.org, 'approve_phase_1')
     self.hw_view = self.portal.restrictedTraverse('hw_view')
Exemplo n.º 35
0
 def setUp(self):
     self.portal = self.layer['portal']
     helpers.login(self.layer['app'], SITE_OWNER_NAME)
     self.testfile = api.content.create(
         self.portal,
         type='File',
         title='A Test File',
     )
     self.testpage = api.content.create(
         self.portal,
         type='Document',
         title='A Test Page',
     )
Exemplo n.º 36
0
 def ploneSite(self, plone_site_id, db=None, connection=None, environ=None):
     from zope.site.hooks import setSite, getSite, setHooks
     setHooks()
     site = getSite()
     with z2.zopeApp(db, connection, environ) as app:
         portal = app[plone_site_id]
         setSite(portal)
         login(portal, TEST_USER_NAME)
         try:
             yield portal
         finally:
             logout()
             if site is not portal:
                 setSite(site)
    def test_json_contacts(self):
        login(self.portal, TEST_USER_NAME)
        alsoProvides(self.portal.REQUEST, ICollectiveContactFacetednavLayer)
        directory = self.portal.mydirectory

        self.portal.REQUEST.form['type'] = 'organization'
        json_contacts = json.loads(directory.unrestrictedTraverse('@@json-contacts')())
        self.assertEqual(len(json_contacts), 7)
        self.assertTrue(json_contacts[0].has_key('id'))
        self.assertEqual(json_contacts[0]['path'], '/plone/mydirectory/armeedeterre')

        self.portal.REQUEST.form['type'] = 'held_position'
        json_contacts = json.loads(directory.unrestrictedTraverse('@@json-contacts')())
        self.assertEqual(len(json_contacts), 4)
        self.assertEqual(json_contacts[0]['path'], '/plone/mydirectory/degaulle/adt')
Exemplo n.º 38
0
    def setUpEnvironment(self, portal):
        """Set up the local component site, reset skin data and log in as
        the test user.
        """

        # Set up the local site manager
        from zope.site.hooks import setSite
        setSite(portal)

        # Reset skin data
        portal.clearCurrentSkin()
        portal.setupCurrentSkin(portal.REQUEST)

        # Pseudo-login as the test user
        from plone.app.testing import helpers
        helpers.login(portal, TEST_USER_NAME)
Exemplo n.º 39
0
    def test_reviewer_publishes_organisation(self):
        utils._send_emails = False
        helpers.login(self.portal, 'Site Administrator')
        self.wftool.doActionFor(self.org, 'approve_phase_1')
        self.org.mission_statement = u'We Care Because We Can'
        self.wftool.doActionFor(self.org, 'submit')
        utils._send_emails = True

        helpers.login(self.portal, 'Site Administrator')
        self.wftool.doActionFor(self.org, 'publish')
        self.assertEqual(self.wftool.getInfoFor(self.org, 'review_state'),
                         'published')
        self.assertIn('View', [
            p['name']
            for p in self.org.permissionsOfRole('Anonymous') if p['selected']
        ])
    def test_subtyper(self):
        login(self.portal, TEST_USER_NAME)
        directory = self.portal.mydirectory
        alsoProvides(self.portal.REQUEST, ICollectiveContactFacetednavLayer)
        subtyper = directory.unrestrictedTraverse('@@contact_faceted_subtyper')
        subtyper.enable_actions()
        self.assertTrue(subtyper.actions_enabled)
        self.assertFalse(subtyper.can_enable_actions())
        self.assertTrue(subtyper.can_disable_actions())
        self.assertTrue(directory.unrestrictedTraverse('@@faceted_query').actions_enabled())

        subtyper.disable_actions()
        self.assertFalse(subtyper.actions_enabled)
        self.assertTrue(subtyper.can_enable_actions())
        self.assertFalse(subtyper.can_disable_actions())
        self.assertFalse(directory.unrestrictedTraverse('@@faceted_query').actions_enabled())
Exemplo n.º 41
0
    def setUpEnvironment(self, portal):
        """Set up the local component site, reset skin data and log in as
        the test user.
        """

        # Set up the local site manager
        setSite(portal)

        # Reset skin data
        portal.clearCurrentSkin()
        portal.setupCurrentSkin(portal.REQUEST)
        notify(BeforeTraverseEvent(portal, portal.REQUEST))

        # Pseudo-login as the test user
        from plone.app.testing import helpers
        helpers.login(portal, TEST_USER_NAME)
Exemplo n.º 42
0
 def test_delete_conversation_no_testbrowser(self):
     self._create_message('testuser1',
                          'testuser2',
                          'Message Text',
                          created=now)
     self.assertEqual(len(self._conversations('testuser1')), 1)
     self.request.form = {
         'user': '******',
     }
     login(self.portal, 'testuser1')
     view = api.content.get_view(context=self.portal,
                                 request=self.request,
                                 name='delete-conversation')
     content = json.loads(view())
     self.assertEqual(content, {u'result': True})
     self.assertEqual(len(self._conversations('testuser1')), 0)
     self.request.form = {}
Exemplo n.º 43
0
    def test_favorite_ajax_actions(self):
        login(self.portal, TEST_USER_NAME)
        doc = self.portal.doc
        doc.restrictedTraverse('@@add-favorite-ajax')()
        storage = IFavoriteStorage(self.portal)
        self.assertEqual(len(storage.get_favorites()), 1)
        self.assertEqual(len(storage.list_favorites(TEST_USER_ID)), 1)
        self.assertEqual(len(storage.list_favorites('toto')), 0)

        json = JSONDecoder().decode(
                doc.restrictedTraverse('@@json-get-favorites')())
        self.assertEqual(len(json), 1)
        self.assertEqual(json[0]['title'], "My doc")

        self.portal.doc.restrictedTraverse('@@remove-favorite-ajax')()
        self.assertEqual(len(storage.list_favorites(TEST_USER_ID)), 0)
        self.assertEqual(len(storage.get_favorites()), 0)
Exemplo n.º 44
0
 def test_reviewer_approves_organisation(self):
     helpers.login(self.portal, 'Site Administrator')
     self.assertFalse(api.user.get(self.creator_id))
     self.wftool.doActionFor(self.org, 'approve_phase_1')
     self.assertEqual(self.wftool.getInfoFor(self.org, 'review_state'),
                      'approved_phase_1')
     user = api.user.get(self.creator_id)
     self.assertEqual(user.getProperty('fullname'), 'Harold van Testinger')
     self.assertEqual(user.getProperty('email'),
                      '*****@*****.**')
     self.assertEqual(
         set(self.org.get_local_roles_for_userid(user.getId())),
         set(('Reader', 'Contributor', 'Editor')))
     self.assertNotIn('View', [
         p['name']
         for p in self.org.permissionsOfRole('Anonymous') if p['selected']
     ])
     self.assertEqual(len(self.sent_mails), 1, msg='Mail not sent')
     self.assertIn('*****@*****.**', self.sent_mails[0])
Exemplo n.º 45
0
 def test_delete_message_no_testbrowser(self):
     self._create_message('testuser1',
                          'testuser2',
                          'Message Text',
                          created=now)
     inbox = self.portal.plonesocial_messaging['testuser1']
     message_id = inbox['testuser2'].keys()[0]
     self.request.form = {
         'user': '******',
         'message': str(message_id),
     }
     login(self.portal, 'testuser1')
     view = api.content.get_view(context=self.portal,
                                 request=self.request,
                                 name='delete-message')
     content = json.loads(view())
     self.assertEqual(content['result'], True)
     self.assertIn(str(message_id), content['message'])
     self.assertNotIn(message_id, inbox['testuser2'])
     self.request.form = {}
Exemplo n.º 46
0
    def test_creator_submits_organisation(self):
        utils._send_emails = False
        helpers.login(self.portal, 'Site Administrator')
        self.wftool.doActionFor(self.org, 'approve_phase_1')
        utils._send_emails = True

        helpers.login(self.portal, self.creator_id)
        self.org.mission_statement = u'We Care Because We Can'
        self.assertIn(
            'submit',
            [a['id'] for a in self.wftool.listActions(object=self.org)])
        self.wftool.doActionFor(self.org, 'submit')
        self.assertEqual(self.wftool.getInfoFor(self.org, 'review_state'),
                         'pending_phase_2')
        self.assertEqual(len(self.sent_mails), 2, msg='Mail not sent')
        self.assertIn('*****@*****.**',
                      '\n'.join(self.sent_mails))
        self.assertIn(self.portal.email_from_address,
                      '\n'.join(self.sent_mails))
        self.assertIn(self.org.absolute_url(), '\n'.join(self.sent_mails))
    def setUp(self):
        """Custom shared utility setup for tests."""
        self.portal = self.layer['portal']
        self.installer = api.portal.get_tool('portal_quickinstaller')
        intids = getUtility(IIntIds)

        login(self.portal, TEST_USER_NAME)
        container = api.content.create(self.portal,
                                       type='Folder',
                                       id='container')
        self.content1 = api.content.create(
            container,
            type='member',
            id='johndoe',
            title="John Doe",
            birth_date=datetime.date(1980, 7, 24),
            amount=100,
            subscription='silver',
            languages=('en', 'fr'),
            biography=u"Longtemps, je me suis couché de bonne heure",
            photo=NamedImage(open(TEST_IMAGE).read(),
                             contentType='image/png',
                             filename=u'logoplone.png'),
        )
        self.content2 = api.content.create(
            container,
            type='member',
            id='johnsmith',
            title="John Smith",
            birth_date=datetime.date(1981, 7, 24),
            amount=100,
            languages=('en', 'es'),
            photo=None,
            biography=u"""Je forme une entreprise qui n'eut jamais d'exemple
et dont l’exécution n'aura point d’imitateur.
Je veux montrer à mes semblables un homme dans toute la vérité de la nature ; et cet homme
ce sera moi.""",
            relatedItems=[RelationValue(intids.getId(self.content1))])
Exemplo n.º 48
0
 def test_create_partners_group_adds_partner_users(self):
     helpers.login(self.app, SITE_OWNER_NAME)
     username, created = create_key_user_if_not_exists(self.org)
     group = create_and_populate_partners_group()
     self.assertIn(username, group.getGroupMemberIds())
Exemplo n.º 49
0
 def tearDown(self):
     helpers.login(self.app, SITE_OWNER_NAME)
     api.content.delete(self.org)
Exemplo n.º 50
0
 def setUp(self):
     self.portal = self.layer['portal']
     setRoles(self.portal, TEST_USER_ID, ['Manager'])
     helpers.login(self.portal, TEST_USER_NAME)
Exemplo n.º 51
0
 def test_get_my_profiles_site_owner(self):
     helpers.login(self.app, SITE_OWNER_NAME)
     self.assertEquals(self.hw_view.get_my_profiles(), [])
Exemplo n.º 52
0
    def test_generate_json(self):
        login(self.portal, TEST_USER_NAME)
        import_json_view = self.portal.restrictedTraverse("@@taxonomy-import")
        input_data = [
            {
                'key': 'animals',
                'translations': {'fr': u'Animaux', 'en': u'Animals'},
                'subnodes': [],
            },
            {
                'key': 'plants',
                'translations': {'fr': u'Végétaux', 'en': u'Plants'},
                'subnodes': [],
            },
        ]
        output = import_json_view.generate_data_for_taxonomy(input_data, 'fr')
        self.assertEqual(
            output,
            [(u'/Animaux', 'animals'), (u'/Végétaux', 'plants')])

        input_data[0]['subnodes'] = [
            {
                'key': 'birds',
                'translations': {'fr': u'Oiseaux', 'en': u'Birds'},
                'subnodes': [
                    {
                        'key': 'eagles',
                        'translations': {'fr': u'Aigles', 'en': u'Eagles'},
                        'subnodes': []
                    },
                    {
                        'key': 'penguins',
                        'translations': {'fr': u'Manchots', 'en': u'Penguins'},
                        'subnodes': []
                    },
                ],
            },
            {
                'key': 'mammals',
                'translations': {'fr': u'Mammifères', 'en': u'Mammals'},
                'subnodes': [
                    {
                        'key': 'cows',
                        'translations': {'fr': u'Vaches', 'en': u'Cows'},
                        'subnodes': []
                    },
                    {
                        'key': 'lions',
                        'translations': {'fr': u'Lions', 'en': u'Lions'},
                        'subnodes': []
                    },
                ],
            },
            {
                'key': 'reptiles',
                'translations': {'fr': u'Reptiles', 'en': u'Reptiles'},
                'subnodes': [
                    {
                        'key': 'pythons',
                        'translations': {'fr': u'Pythons', 'en': u'Pythons'},
                        'subnodes': []
                    },
                ],
            },
        ]
        output = import_json_view.generate_data_for_taxonomy(input_data, 'fr')
        self.assertEqual(
            output,
            [(u'/Animaux', 'animals'),
             (u'/Animaux/Oiseaux', 'birds'),
             (u'/Animaux/Oiseaux/Aigles', 'eagles'),
             (u'/Animaux/Oiseaux/Manchots', 'penguins'),
             (u'/Animaux/Mammifères', 'mammals'),
             (u'/Animaux/Mammifères/Vaches', 'cows'),
             (u'/Animaux/Mammifères/Lions', 'lions'),
             (u'/Animaux/Reptiles', 'reptiles'),
             (u'/Animaux/Reptiles/Pythons', 'pythons'),
             (u'/Végétaux', 'plants')])
Exemplo n.º 53
0
    def test_generate_json(self):
        login(self.portal, TEST_USER_NAME)
        import_json_view = self.portal.restrictedTraverse("@@taxonomy-import")
        input_data = [
            {
                "key": "animals",
                "translations": {
                    "fr": u"Animaux",
                    "en": u"Animals"
                },
                "subnodes": [],
            },
            {
                "key": "plants",
                "translations": {
                    "fr": u"Végétaux",
                    "en": u"Plants"
                },
                "subnodes": [],
            },
        ]
        output = import_json_view.generate_data_for_taxonomy(input_data, "fr")
        self.assertEqual(output, [(u"\u241fAnimaux", "animals"),
                                  (u"\u241fVégétaux", "plants")])

        input_data[0]["subnodes"] = [
            {
                "key":
                "birds",
                "translations": {
                    "fr": u"Oiseaux",
                    "en": u"Birds"
                },
                "subnodes": [
                    {
                        "key": "eagles",
                        "translations": {
                            "fr": u"Aigles",
                            "en": u"Eagles"
                        },
                        "subnodes": [],
                    },
                    {
                        "key": "penguins",
                        "translations": {
                            "fr": u"Manchots",
                            "en": u"Penguins"
                        },
                        "subnodes": [],
                    },
                ],
            },
            {
                "key":
                "mammals",
                "translations": {
                    "fr": u"Mammifères",
                    "en": u"Mammals"
                },
                "subnodes": [
                    {
                        "key": "cows",
                        "translations": {
                            "fr": u"Vaches",
                            "en": u"Cows"
                        },
                        "subnodes": [],
                    },
                    {
                        "key": "lions",
                        "translations": {
                            "fr": u"Lions",
                            "en": u"Lions"
                        },
                        "subnodes": [],
                    },
                ],
            },
            {
                "key":
                "reptiles",
                "translations": {
                    "fr": u"Reptiles",
                    "en": u"Reptiles"
                },
                "subnodes": [
                    {
                        "key": "pythons",
                        "translations": {
                            "fr": u"Pythons",
                            "en": u"Pythons"
                        },
                        "subnodes": [],
                    },
                ],
            },
        ]
        output = import_json_view.generate_data_for_taxonomy(input_data, "fr")
        self.assertEqual(
            output,
            [
                (u"\u241fAnimaux", "animals"),
                (u"\u241fAnimaux\u241fOiseaux", "birds"),
                (u"\u241fAnimaux\u241fOiseaux\u241fAigles", "eagles"),
                (u"\u241fAnimaux\u241fOiseaux\u241fManchots", "penguins"),
                (u"\u241fAnimaux\u241fMammifères", "mammals"),
                (u"\u241fAnimaux\u241fMammifères\u241fVaches", "cows"),
                (u"\u241fAnimaux\u241fMammifères\u241fLions", "lions"),
                (u"\u241fAnimaux\u241fReptiles", "reptiles"),
                (u"\u241fAnimaux\u241fReptiles\u241fPythons", "pythons"),
                (u"\u241fVégétaux", "plants"),
            ],
        )
Exemplo n.º 54
0
 def tearDown(self):
     helpers.login(self.app, SITE_OWNER_NAME)
     if 'test-organisation' in self.organisations.objectIds():
         api.content.delete(self.org)
     api.user.delete(self.creator_id)