Exemplo n.º 1
0
    def test_membership_changed(self):
        tools.add_attribute_to_metadata('organizations', catalog_id)

        organization = self.new_temporary_folder()

        person = self.get_test_person()
        memberships = [Membership(person, 'vice-president')]

        class Source(TestAdapter):

            def memberships(self, person=None):
                return {IUUID(organization): memberships}

        with self.custom_source(Source):
            catalog = api.portal.get_tool(catalog_id)
            rid = tools.get_brain_by_object(person, catalog_id).getRID()

            get_orgs = lambda: catalog.getMetadataForRID(rid)['organizations']

            # because the membership source was added after the person
            # was created, the organizations metadata column is empty
            self.assertEqual(get_orgs(), [])

            # after signalling that the membership has changed, the
            # organizations should be available
            notify(MembershipChangedEvent(person))
            self.assertEqual(get_orgs(), [organization.id])
Exemplo n.º 2
0
    def test_add_attribute_to_metadata(self):
        catalog = api.portal.get_tool('portal_catalog')

        tools.add_attribute_to_metadata('test')
        self.assertIn('test', catalog._catalog.schema)

        # ensure that a second call doesn't do anything
        tools.add_attribute_to_metadata('test')
        self.assertIn('test', catalog._catalog.schema)
Exemplo n.º 3
0
def update_metadata(fti):
    compound_columns = get_compound_columns()

    for column in get_columns(fti.lookupSchema()):
        for field in column:
            tools.add_attribute_to_metadata(field, catalog_id)

            if field in compound_columns:
                tools.add_attribute_to_metadata(
                    compound_columns[field], catalog_id)