From e78231d981253e32766392f3cf99b32552f57e16 Mon Sep 17 00:00:00 2001 From: Neeraj Kashyap Date: Tue, 1 Feb 2022 06:42:07 -0800 Subject: [PATCH] Tests for new functionality --- dao/test_terminus.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/dao/test_terminus.py b/dao/test_terminus.py index e640ccd..b0e8a10 100644 --- a/dao/test_terminus.py +++ b/dao/test_terminus.py @@ -2,6 +2,7 @@ from typing import List import unittest from brownie import accounts +from brownie.exceptions import VirtualMachineError from . import ERC20Facet, TerminusFacet, TerminusInitializer from .core import facet_cut @@ -32,6 +33,34 @@ class TestDeployment(MoonstreamDAOSingleContractTestCase): self.assertEqual(controller, accounts[0].address) +class TestController(TerminusTestCase): + def test_set_controller_fails_when_not_called_by_controller(self): + terminus_diamond_address = self.terminus_contracts["Diamond"] + diamond_terminus = TerminusFacet.TerminusFacet(terminus_diamond_address) + + with self.assertRaises(VirtualMachineError): + diamond_terminus.set_controller(accounts[1].address, {"from": accounts[1]}) + + def test_set_controller_fails_when_not_called_by_controller_even_if_they_change_to_existing_controller( + self, + ): + terminus_diamond_address = self.terminus_contracts["Diamond"] + diamond_terminus = TerminusFacet.TerminusFacet(terminus_diamond_address) + + with self.assertRaises(VirtualMachineError): + diamond_terminus.set_controller(accounts[0].address, {"from": accounts[1]}) + + def test_set_controller(self): + terminus_diamond_address = self.terminus_contracts["Diamond"] + diamond_terminus = TerminusFacet.TerminusFacet(terminus_diamond_address) + + self.assertEqual(diamond_terminus.terminus_controller(), accounts[0].address) + diamond_terminus.set_controller(accounts[3].address, {"from": accounts[0]}) + self.assertEqual(diamond_terminus.terminus_controller(), accounts[3].address) + diamond_terminus.set_controller(accounts[0].address, {"from": accounts[3]}) + self.assertEqual(diamond_terminus.terminus_controller(), accounts[0].address) + + class TestContractURI(TerminusTestCase): def test_contract_uri(self): terminus_diamond_address = self.terminus_contracts["Diamond"]