【问题标题】:How can I use the new password generated in next call of same function?如何使用下一次调用相同函数时生成的新密码?
【发布时间】:2018-09-10 16:56:12
【问题描述】:

我有以下功能可以在身份验证后更新用户名的密码

def test_put_profile(self):
    username = 'max@gmail.com'
    password = 'evkna7'
    adv = {'email': username, 'password': password}

    # genearate auth code for authorization
    auth_code = {'Authorization': f'Bearer {self.get_auth_token(adv)}'}

    #genearate new password
    np = DataGenerator.generate_random_password_string(6)
    param = f'old_password={password}&'f'new_password={np}'

    #update password
    response = self.send_adv_api_request(
                                         data=param,
                                         auth=auth_code)

现在,我如何存储新密码并在下次调用时将其替换为相同功能的密码?基本上,这将是更新密码的递归测试。

任何帮助将不胜感激。我应该写成文字吗?

【问题讨论】:

    标签: python python-3.x api put


    【解决方案1】:

    您需要将密码存储在此函数范围之外,以便您可以从递归调用中访问它。

    curr_password = 'evkna7'
    
    def test_put_profile(self):
        global curr_password
        username = 'max@gmail.com'
        adv = {'email': username, 'password': curr_password}
    
        # genearate auth code for authorization
        auth_code = {'Authorization': f'Bearer {self.get_auth_token(adv)}'}
    
        #genearate new password
        np = DataGenerator.generate_random_password_string(6)
        param = f'old_password={password}&'f'new_password={np}'
        curr_password = np #Change global password to newly created password
    
        #update password
        response = self.send_adv_api_request(
                                             data=param,
                                             auth=auth_code)
    

    【讨论】:

    • 谢谢!我这里还有一个问题。当此测试第二次运行时,curr_password 将如何取新值?
    • 可能我应该使用外部数据库来存储这些新密码然后使用它。
    • @ManojKengudelu 代码的每次迭代都会更新 curr_password 变量。这样,您可以在下一个函数调用中使用最后生成的版本。使用外部数据库也可以,例如 SQLite3,在 python3 中实现非常简单
    猜你喜欢
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    相关资源
    最近更新 更多