Skip to content

Test Flow Branching#

Example of testing a contract with branching logic in the test flow.

class CrossAccountTest(FuzzTest):
    @flow()
    def flow_multi_account(self):
        user_count = random_int(1, 5)

        for _ in range(user_count):
            user = random_account(lower_bound=1).address

            if self.pool.balanceOf(user) == 0:
                self.deposit(user, random_amount())
            else:
                self.claim(user)

                if random_bool():
                    self.deposit(user, random_amount())
                else:
                    balance = self.pool.balanceOf(user)
                    self.withdraw(user, min(random_amount(), balance))