Example #1
0
    def test_create_user(self):
        """Test the 'create' part of _create_or_update_user."""
        new_user = self.fake_filtered_data()

        # User not found yet
        self.api.get('/users/%s' % new_user['nethz'], status_code=404)

        with self.app.test_request_context():
            ldap._create_or_update_user(new_user)

        # User exists now
        self.api.get('/users/%s' % new_user['nethz'], status_code=200)
Example #2
0
    def test_create_user(self):
        """Test the 'create' part of _create_or_update_user."""
        new_user = self.fake_filtered_data()

        # User not found yet
        self.api.get('/users/%s' % new_user['nethz'], status_code=404)

        with self.app.test_request_context():
            ldap._create_or_update_user(new_user)

        # User exists now
        self.api.get('/users/%s' % new_user['nethz'], status_code=200)
Example #3
0
    def test_update_user(self):
        """Test the 'patch' part of _create_or_patch_user."""
        # The user is in the database. Now change a few things and verify
        # patch with original data does the correct thing
        tests = (
            # (field, db_value, ldap_value, change_expected)
            ('firstname', 'old', 'new', True),
            ('lastname', 'old', 'new', True),
            ('department', 'mavt', 'itet', True),
            ('gender', 'male', 'female', True),
            ('legi', '76543210', '01234567', True),
            # Membership is only upgraded
            ('membership', 'none', 'regular', True),
            ('membership', 'regular', 'none', False),
            ('membership', 'honorary', 'regular', False),
            ('membership', 'honorary', 'none', False),
            ('membership', 'extraordinary', 'regular', False),
            ('membership', 'extraordinary', 'none', False),
            # email will not be changed
            ('email', '*****@*****.**', '*****@*****.**', False)
        )

        for ind, (field, db_value, ldap_value, change) in enumerate(tests):
            # Create a new user for every test
            self.new_object('users', nethz=str(ind), **{field: db_value})
            ldap_data = {'nethz': str(ind), field: ldap_value}

            with self.app.test_request_context():
                result = ldap._create_or_update_user(ldap_data)

            if change:
                self.assertEqual(result[field], ldap_value)
            else:
                self.assertEqual(result[field], db_value)
Example #4
0
    def test_update_user(self):
        """Test the 'patch' part of _create_or_patch_user."""
        # The user is in the database. Now change a few things and verify
        # patch with original data does the correct thing
        tests = (
            # (field, db_value, ldap_value, change_expected)
            ('firstname', 'old', 'new', True),
            ('lastname', 'old', 'new', True),
            ('department', 'mavt', 'itet', True),
            ('gender', 'male', 'female', True),
            ('legi', '76543210', '01234567', True),
            # Membership is only upgraded
            ('membership', 'none', 'regular', True),
            ('membership', 'regular', 'none', False),
            ('membership', 'honorary', 'regular', False),
            ('membership', 'honorary', 'none', False),
            ('membership', 'extraordinary', 'regular', False),
            ('membership', 'extraordinary', 'none', False),
            # email will not be changed
            ('email', '*****@*****.**', '*****@*****.**', False))

        for ind, (field, db_value, ldap_value, change) in enumerate(tests):
            # Create a new user for every test
            self.new_object('users', nethz=str(ind), **{field: db_value})
            ldap_data = {'nethz': str(ind), field: ldap_value}

            with self.app.test_request_context():
                result = ldap._create_or_update_user(ldap_data)

            if change:
                self.assertEqual(result[field], ldap_value)
            else:
                self.assertEqual(result[field], db_value)
Example #5
0
    def test_upgrade_membership(self):
        # Insert non-member and upgrade by ldap later
        user = self.api.post(
            '/users',
            data={
                'nethz': 'pablo',
                'email': '*****@*****.**',  # this will be auto-generated
                'firstname': 'P',
                'lastname': 'Ablo',
                'department': 'itet',
                'membership': 'none',
                'gender': 'female',
                'legi': '01234567',
                'send_newsletter': False,
            },
            status_code=201).json
        self.assertFalse(user['send_newsletter'])

        with self.app.test_request_context():
            result = ldap._create_or_update_user(self.fake_filtered_data())

        self.assertTrue(result['send_newsletter'])