def test_rollback(testerchain, test_registry): old_secret = bytes('new' + POLICY_MANAGER_DEPLOYMENT_SECRET, encoding='utf-8') new_secret_hash = keccak(text="third time's the charm") deployer = PolicyManagerDeployer( registry=test_registry, deployer_address=testerchain.etherbase_account) policy_manager_agent = PolicyManagerAgent(registry=test_registry) current_target = policy_manager_agent.contract.functions.target().call() # Let's do one more upgrade receipts = deployer.upgrade(existing_secret_plaintext=old_secret, new_secret_hash=new_secret_hash, ignore_deployed=True) for title, receipt in receipts.items(): assert receipt['status'] == 1 old_target = current_target current_target = policy_manager_agent.contract.functions.target().call() assert current_target != old_target # It's time to rollback. But first... wrong_secret = b"WRONG!!" with pytest.raises(deployer.ContractDeploymentError): deployer.rollback(existing_secret_plaintext=wrong_secret, new_secret_hash=new_secret_hash) # OK, *now* is time for rollback old_secret = b"third time's the charm" new_secret_hash = keccak(text="...maybe not.") receipt = deployer.rollback(existing_secret_plaintext=old_secret, new_secret_hash=new_secret_hash) assert receipt['status'] == 1 new_target = policy_manager_agent.contract.functions.target().call() assert new_target != current_target assert new_target == old_target
def test_rollback(testerchain, test_registry, transacting_power): deployer = PolicyManagerDeployer(registry=test_registry) policy_manager_agent = PolicyManagerAgent(registry=test_registry) current_target = policy_manager_agent.contract.functions.target().call() # Let's do one more upgrade receipts = deployer.upgrade(ignore_deployed=True, confirmations=0, transacting_power=transacting_power) for title, receipt in receipts.items(): assert receipt['status'] == 1 old_target = current_target current_target = policy_manager_agent.contract.functions.target().call() assert current_target != old_target # It's time to rollback. receipt = deployer.rollback(transacting_power=transacting_power) assert receipt['status'] == 1 new_target = policy_manager_agent.contract.functions.target().call() assert new_target != current_target assert new_target == old_target
def test_rollback(testerchain, test_registry): deployer = PolicyManagerDeployer( registry=test_registry, deployer_address=testerchain.etherbase_account) policy_manager_agent = PolicyManagerAgent(registry=test_registry) current_target = policy_manager_agent.contract.functions.target().call() # Let's do one more upgrade receipts = deployer.upgrade(ignore_deployed=True) for title, receipt in receipts.items(): assert receipt['status'] == 1 old_target = current_target current_target = policy_manager_agent.contract.functions.target().call() assert current_target != old_target # It's time to rollback. receipt = deployer.rollback() assert receipt['status'] == 1 new_target = policy_manager_agent.contract.functions.target().call() assert new_target != current_target assert new_target == old_target