代码之家  ›  专栏  ›  技术社区  ›  Manoj Kengudelu

如何使用在下次调用相同函数时生成的新密码?

  •  0
  • Manoj Kengudelu  · 技术社区  · 6 年前

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

    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)
    

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

    任何帮助都将不胜感激。我应该把它写在文本里吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Nick Dima    6 年前

    您需要将密码存储在该函数作用域之外,这样您就可以从递归调用中访问它。

    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)