예제 #1
0
 def change_password(self, new_password):
     global DBSession
     hashed_pwd = hashlib.sha512(self.salt + new_password).hexdigest()
     self.password = hashed_pwd
     DBSession.add(self)
     DBSession.flush()
     logger.info('user %s password changed' % self.user_name)
     return (True, None)
예제 #2
0
 def fin():
     model = DBSession.query(group_table).filter(group_table.group_id == group.group_id).scalar()
     if model:
         DBSession.delete(model)
         DBSession.flush()
         transaction.commit()
         print '(A_group fixture) delete'
     if DBSession.dirty:
         transaction.commit()
예제 #3
0
 def fin():
     model = DBSession.query(user_table).filter(user_table.user_id == user.user_id).scalar()
     if model:
         DBSession.delete(model)
         DBSession.flush()
         transaction.commit()
         print '(A_user fixture)=> delete'
     if DBSession.dirty:
         transaction.commit()
예제 #4
0
 def create(cls, user_name, password, activated, group_id, description=None):
     global DBSession
     salt = os.urandom(26).encode('hex')
     logger.debug('create salt: %s' % salt)
     hashed_pwd = hashlib.sha512(salt + password).hexdigest()
     model = cls(user_name=user_name, description=description, password=hashed_pwd,
                 salt=salt, activated=activated, group_id=group_id)
     DBSession.add(model)
     DBSession.flush()
     logger.info('user %s created' % user_name)
     return (True, model)
예제 #5
0
def test_modify_user(engine_fixture, A_user):
    user_table = models.account.User_TB

    original_user_id = A_user.user_id
    new_user_name = id_generator(size=5).decode('utf-8')

    with transaction.manager as tm:
        A_user.user_name = new_user_name
        DBSession.flush()
        find_user = DBSession.query(user_table).filter(user_table.user_name == new_user_name).scalar()
        assert A_user.user_id == find_user.user_id
예제 #6
0
def test_modify_group(engine_fixture, A_group):
    group_table = models.account.Group_TB
    model = DBSession.query(group_table).filter(group_table.group_name == A_group.group_name).scalar()
    assert model.group_id == A_group.group_id

    original_group_id = model.group_id
    new_group_name = id_generator(size=5).decode('utf-8')

    with transaction.manager as tm:
        A_group.group_name = new_group_name
        DBSession.flush()
        find_group = DBSession.query(group_table).filter(group_table.group_name == new_group_name).scalar()
        assert find_group.group_id == original_group_id
예제 #7
0
def A_group(request, engine_fixture):
    group_table = models.account.Group_TB
    with transaction.manager as tm:
        group = group_table(group_name=id_generator(size=25).decode('utf-8'))
        DBSession.add(group)
        DBSession.flush()
    print "(A_group fixture) created"
    def fin():
        model = DBSession.query(group_table).filter(group_table.group_id == group.group_id).scalar()
        if model:
            DBSession.delete(model)
            DBSession.flush()
            transaction.commit()
            print '(A_group fixture) delete'
        if DBSession.dirty:
            transaction.commit()
    request.addfinalizer(fin)
    return group
예제 #8
0
def test_delete_group(engine_fixture):
    group_table = models.account.Group_TB
    new_group_name = id_generator(size=25).decode('utf-8')
    with transaction.manager as tm:

        #create
        new_model = group_table(group_name=new_group_name)
        DBSession.add(new_model)
        DBSession.flush()

        model = DBSession.query(group_table).filter(group_table.group_name == new_group_name).scalar()
        assert model

        #delete
        DBSession.delete(model)
        DBSession.flush()

        model = DBSession.query(group_table).filter(group_table.group_name == new_group_name).first()
        assert model == None
예제 #9
0
def test_delete_user(engine_fixture, A_group):
    user_table = models.account.User_TB

    user_name=id_generator(size=25).decode('utf-8')
    salt = os.urandom(26).encode('hex')
    password = os.urandom(10).encode('hex')

    with transaction.manager as tm:
        success, user = user_table.create(
                            user_name = user_name,
                            password=password,
                            activated=True,
                            group_id=A_group.group_id
                            )
        assert success == True
        #delete
        DBSession.delete(user)
        DBSession.flush()
        model = DBSession.query(user_table).filter(user_table.user_id == user.user_id).first()
        assert model == None