示例#1
0
    def test_import(self):
        user_schema = getUserDataSchema()
        pm = getToolByName(self.portal, "portal_memberdata")
        member_properties = pm.propertyIds()

        self.assertIn("home_page", user_schema)
        self.assertTrue(isinstance(user_schema['home_page'], schema.URI))
        self.assertIn("home_page", member_properties)
        self.assertEqual(pm.getPropertyType('home_page'), 'text')

        self.assertIn("description", user_schema)
        self.assertTrue(isinstance(user_schema['description'], schema.Text))
        self.assertIn("description", member_properties)
        self.assertEqual(pm.getPropertyType('description'), 'text')

        self.assertIn("location", user_schema)
        self.assertTrue(isinstance(user_schema['location'], schema.TextLine))
        self.assertIn("location", member_properties)
        self.assertEqual(pm.getPropertyType('location'), 'string')

        self.assertIn("portrait", user_schema)
        self.assertTrue(isinstance(user_schema['portrait'], NamedBlobImage))
        # image fields are not handled as memberdata property,
        # it is handled directly in portal_membership
        self.assertNotIn("portrait", member_properties)

        self.assertIn("birthdate", user_schema)
        self.assertTrue(isinstance(user_schema['birthdate'], schema.Date))
        self.assertIn("birthdate", member_properties)
        self.assertEqual(pm.getPropertyType('birthdate'), 'date')

        self.assertIn("another_date", user_schema)
        self.assertTrue(isinstance(user_schema['another_date'], schema.Datetime))
        self.assertIn("another_date", member_properties)
        self.assertEqual(pm.getPropertyType('another_date'), 'date')

        self.assertIn("age", user_schema)
        self.assertTrue(isinstance(user_schema['age'], schema.Int))
        self.assertIn("age", member_properties)
        self.assertEqual(pm.getPropertyType('age'), 'int')

        self.assertIn("department", user_schema)
        self.assertTrue(isinstance(user_schema['department'], schema.Choice))
        self.assertIn("department", member_properties)
        self.assertEqual(pm.getPropertyType('department'), 'string')

        self.assertIn("skills", user_schema)
        self.assertTrue(isinstance(user_schema['skills'], schema.Set))
        self.assertIn("skills", member_properties)
        self.assertEqual(pm.getPropertyType('skills'), 'lines')

        self.assertIn("pi", user_schema)
        self.assertTrue(isinstance(user_schema['pi'], schema.Float))
        self.assertIn("pi", member_properties)
        self.assertEqual(pm.getPropertyType('pi'), 'float')

        self.assertIn("vegetarian", user_schema)
        self.assertTrue(isinstance(user_schema['vegetarian'], schema.Bool))
        self.assertIn("vegetarian", member_properties)
        self.assertEqual(pm.getPropertyType('vegetarian'), 'boolean')
    def test_import(self):
        user_schema = getUserDataSchema()
        pm = getToolByName(self.portal, "portal_memberdata")
        member_properties = pm.propertyIds()

        self.assertIn("home_page", user_schema)
        self.assertTrue(isinstance(user_schema["home_page"], schema.URI))
        self.assertIn("home_page", member_properties)
        self.assertEqual(pm.getPropertyType("home_page"), "text")

        self.assertIn("description", user_schema)
        self.assertTrue(isinstance(user_schema["description"], schema.Text))
        self.assertIn("description", member_properties)
        self.assertEqual(pm.getPropertyType("description"), "text")

        self.assertIn("location", user_schema)
        self.assertTrue(isinstance(user_schema["location"], schema.TextLine))
        self.assertIn("location", member_properties)
        self.assertEqual(pm.getPropertyType("location"), "string")

        self.assertIn("portrait", user_schema)
        self.assertTrue(isinstance(user_schema["portrait"], NamedBlobImage))
        # image fields are not handled as memberdata property,
        # it is handled directly in portal_membership
        self.assertNotIn("portrait", member_properties)

        self.assertIn("birthdate", user_schema)
        self.assertTrue(isinstance(user_schema["birthdate"], schema.Date))
        self.assertIn("birthdate", member_properties)
        self.assertEqual(pm.getPropertyType("birthdate"), "date")

        self.assertIn("another_date", user_schema)
        self.assertTrue(isinstance(user_schema["another_date"], schema.Datetime))
        self.assertIn("another_date", member_properties)
        self.assertEqual(pm.getPropertyType("another_date"), "date")

        self.assertIn("age", user_schema)
        self.assertTrue(isinstance(user_schema["age"], schema.Int))
        self.assertIn("age", member_properties)
        self.assertEqual(pm.getPropertyType("age"), "int")

        self.assertIn("department", user_schema)
        self.assertTrue(isinstance(user_schema["department"], schema.Choice))
        self.assertIn("department", member_properties)
        self.assertEqual(pm.getPropertyType("department"), "string")

        self.assertIn("skills", user_schema)
        self.assertTrue(isinstance(user_schema["skills"], schema.Set))
        self.assertIn("skills", member_properties)
        self.assertEqual(pm.getPropertyType("skills"), "lines")

        self.assertIn("pi", user_schema)
        self.assertTrue(isinstance(user_schema["pi"], schema.Float))
        self.assertIn("pi", member_properties)
        self.assertEqual(pm.getPropertyType("pi"), "float")

        self.assertIn("vegetarian", user_schema)
        self.assertTrue(isinstance(user_schema["vegetarian"], schema.Bool))
        self.assertIn("vegetarian", member_properties)
        self.assertEqual(pm.getPropertyType("vegetarian"), "boolean")
    def test_import(self):
        user_schema = getUserDataSchema()
        pm = getToolByName(self.portal, "portal_memberdata")
        member_properties = pm.propertyIds()

        self.assertIn("home_page", user_schema)
        self.assertTrue(isinstance(user_schema['home_page'], schema.URI))
        self.assertIn("home_page", member_properties)
        self.assertEqual(pm.getPropertyType('home_page'), 'text')

        self.assertIn("description", user_schema)
        self.assertTrue(isinstance(user_schema['description'], schema.Text))
        self.assertIn("description", member_properties)
        self.assertEqual(pm.getPropertyType('description'), 'text')

        self.assertIn("location", user_schema)
        self.assertTrue(isinstance(user_schema['location'], schema.TextLine))
        self.assertIn("location", member_properties)
        self.assertEqual(pm.getPropertyType('location'), 'string')

        self.assertIn("portrait", user_schema)
        self.assertTrue(isinstance(user_schema['portrait'], NamedBlobImage))
        # image fields are not handled as memberdata property,
        # it is handled directly in portal_membership
        self.assertNotIn("portrait", member_properties)

        self.assertIn("birthdate", user_schema)
        self.assertTrue(isinstance(user_schema['birthdate'], schema.Date))
        self.assertIn("birthdate", member_properties)
        self.assertEqual(pm.getPropertyType('birthdate'), 'date')

        self.assertIn("another_date", user_schema)
        self.assertTrue(isinstance(user_schema['another_date'], schema.Datetime))
        self.assertIn("another_date", member_properties)
        self.assertEqual(pm.getPropertyType('another_date'), 'date')

        self.assertIn("age", user_schema)
        self.assertTrue(isinstance(user_schema['age'], schema.Int))
        self.assertIn("age", member_properties)
        self.assertEqual(pm.getPropertyType('age'), 'int')

        self.assertIn("department", user_schema)
        self.assertTrue(isinstance(user_schema['department'], schema.Choice))
        self.assertIn("department", member_properties)
        self.assertEqual(pm.getPropertyType('department'), 'string')

        self.assertIn("skills", user_schema)
        self.assertTrue(isinstance(user_schema['skills'], schema.Set))
        self.assertIn("skills", member_properties)
        self.assertEqual(pm.getPropertyType('skills'), 'lines')

        self.assertIn("pi", user_schema)
        self.assertTrue(isinstance(user_schema['pi'], schema.Float))
        self.assertIn("pi", member_properties)
        self.assertEqual(pm.getPropertyType('pi'), 'float')

        self.assertIn("vegetarian", user_schema)
        self.assertTrue(isinstance(user_schema['vegetarian'], schema.Bool))
        self.assertIn("vegetarian", member_properties)
        self.assertEqual(pm.getPropertyType('vegetarian'), 'boolean')
示例#4
0
    def test_profile_properties(self):
        """Check that the user profile edit form have all the properties."""
        user_schema = getUserDataSchema()

        for field in user_schema_properties:
            self.assertIn(
                field, user_schema,
                'Field "{0}" not found on userschema.xml'.format(field))
示例#5
0
 def test_hidden_properties_not_on_profile(self):
     """Check that some properties are not on the profile edit."""
     user_schema = getUserDataSchema()
     error_msg = 'Property "{0}" should not be on a member edit profile'
     for field in hidden_properties:
         self.assertNotIn(
             field,
             user_schema,
             error_msg.format(field)
         )
示例#6
0
    def test_profile_properties(self):
        """Check that the user profile edit form have all the properties."""
        user_schema = getUserDataSchema()

        for field in user_schema_properties:
            self.assertIn(
                field,
                user_schema,
                'Field "{0}" not found on userschema.xml'.format(field)
            )
示例#7
0
    def test_import(self):
        user_schema = getUserDataSchema()
        pm = getToolByName(self.portal, "portal_memberdata")
        member_properties = pm.propertyIds()

        self.assertIn("id_number", user_schema)
        self.assertTrue(isinstance(user_schema['id_number'], schema.TextLine))
        self.assertIn("id_number", member_properties)
        self.assertEqual(pm.getPropertyType('id_number'), 'string')

        self.assertIn("safe_level", user_schema)
        self.assertTrue(isinstance(user_schema['safe_level'], schema.Choice))
        self.assertIn("safe_level", member_properties)
        self.assertEqual(pm.getPropertyType('safe_level'), 'string')
示例#8
0
    def __call__(self):
        user = self.context
        portal = getSite()

        # Global roles
        roles = user.getRoles()
        # Anonymous and Authenticated are pseudo roles assign automatically
        # to logged-in or logged-out users. They should not be exposed here
        roles = list(set(roles) - set([
            'Anonymous',
            'Authenticated',
        ]))

        data = {
            '@id': '{}/@users/{}'.format(portal.absolute_url(), user.id),
            'id': user.id,
            'username': user.getUserName(),
            'roles': roles,
        }

        if HAS_TTW_SCHEMAS:
            schema = getUserDataSchema()
        else:
            util = getUtility(IUserDataSchemaProvider)
            schema = util.getSchema()

        for name in getFieldNames(schema):
            if name == 'portrait':
                memberdata = getToolByName(portal, 'portal_memberdata')
                if user.id in memberdata.portraits:
                    value = '{}/portal_memberdata/portraits/{}'.format(
                        portal.absolute_url(), user.id)
                else:
                    value = None
            elif name == 'pdelete':
                continue
            else:
                value = user.getProperty(name, '')
                if value == '':
                    value = None
                if value:
                    value = safe_unicode(value)
            data[name] = value

        return data
示例#9
0
    def __call__(self):
        user = self.context
        portal = getSite()

        # Global roles
        roles = user.getRoles()
        # Anonymous and Authenticated are pseudo roles assign automatically
        # to logged-in or logged-out users. They should not be exposed here
        roles = list(set(roles) - set(["Anonymous", "Authenticated"]))

        data = {
            "@id": "{}/@users/{}".format(portal.absolute_url(), user.id),
            "id": user.id,
            "username": user.getUserName(),
            "roles": roles,
        }

        if HAS_TTW_SCHEMAS:
            schema = getUserDataSchema()
        else:
            util = getUtility(IUserDataSchemaProvider)
            schema = util.getSchema()

        for name in getFieldNames(schema):
            if name == "portrait":
                memberdata = getToolByName(portal, "portal_memberdata")
                if user.id in memberdata.portraits:
                    value = "{}/portal_memberdata/portraits/{}".format(
                        portal.absolute_url(), user.id)
                else:
                    value = None
            elif name == "pdelete":
                continue
            else:
                value = user.getProperty(name, "")
                if value == "":
                    value = None
                if value:
                    value = safe_unicode(value)
            data[name] = value

        return data
示例#10
0
 def test_hidden_properties_not_on_profile(self):
     """Check that some properties are not on the profile edit."""
     user_schema = getUserDataSchema()
     error_msg = 'Property "{0}" should not be on a member edit profile'
     for field in hidden_properties:
         self.assertNotIn(field, user_schema, error_msg.format(field))