Skip to content

Commit e411f48

Browse files
test: test internal borrow caps
1 parent ae608f5 commit e411f48

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# You can access update_total_debt using
2+
3+
import boa
4+
import pytest
5+
from textwrap import dedent
6+
7+
from tests.utils.constants import WAD
8+
9+
10+
BORROW_CAP = 10**9
11+
12+
13+
@pytest.fixture(scope="module", autouse=True)
14+
def expose_internal(controller):
15+
controller.inject_function(
16+
dedent("""
17+
@external
18+
def update_total_debt(d_debt: uint256, rate_mul: uint256, is_increase: bool) -> core.IController.Loan:
19+
return core._update_total_debt(d_debt, rate_mul, is_increase)
20+
""")
21+
)
22+
23+
24+
def test_default_behavior(controller):
25+
controller.eval("core._total_debt.initial_debt = 0")
26+
controller.eval(f"core._total_debt.rate_mul = {WAD}")
27+
controller.eval(f"core.borrow_cap = {BORROW_CAP}")
28+
29+
controller.inject.update_total_debt(BORROW_CAP - 1, WAD, True)
30+
current_debt = controller.eval("core._total_debt.initial_debt")
31+
assert current_debt == BORROW_CAP - 1
32+
33+
controller.inject.update_total_debt(1, WAD, True)
34+
current_debt = controller.eval("core._total_debt.initial_debt")
35+
assert current_debt == BORROW_CAP
36+
37+
38+
def test_exceeding_borrow_cap_reverts(controller):
39+
controller.eval(f"core._total_debt.rate_mul = {WAD}")
40+
controller.eval(f"core.borrow_cap = {BORROW_CAP}")
41+
controller.eval(f"core._total_debt.initial_debt = {BORROW_CAP}")
42+
43+
with boa.reverts("Borrow cap exceeded"):
44+
controller.inject.update_total_debt(1, WAD, True)
45+
46+
current_debt = controller.eval("core._total_debt.initial_debt")
47+
assert current_debt == BORROW_CAP

0 commit comments

Comments
 (0)