|
10 | 10 | import algopy_testing |
11 | 11 | from algopy_testing._context_helpers import lazy_context |
12 | 12 | from algopy_testing.constants import ALWAYS_APPROVE_TEAL_PROGRAM, MAX_BYTES_SIZE, MAX_UINT64 |
13 | | -from algopy_testing.models.account import AccountContextData, AccountFields |
| 13 | +from algopy_testing.models.account import AccountFields |
14 | 14 | from algopy_testing.models.application import ApplicationContextData, ApplicationFields |
15 | 15 | from algopy_testing.models.asset import AssetFields |
16 | 16 | from algopy_testing.utils import generate_random_int |
@@ -88,14 +88,13 @@ def account( |
88 | 88 |
|
89 | 89 | new_account_address = address or algosdk.account.generate_account()[1] |
90 | 90 | new_account = algopy.Account(new_account_address) |
91 | | - new_account_fields = AccountFields(**account_fields) |
92 | | - new_account_data = AccountContextData( |
93 | | - fields=new_account_fields, |
94 | | - opted_asset_balances=opted_asset_balances or {}, |
95 | | - opted_apps={app.id: app for app in opted_apps}, |
96 | | - ) |
97 | | - |
98 | | - lazy_context.ledger.account_data[new_account_address] = new_account_data |
| 91 | + # defaultdict of account_data ensures we get a new initialized account |
| 92 | + account_data = lazy_context.ledger.account_data[new_account_address] |
| 93 | + # update so defaults are preserved |
| 94 | + account_data.fields.update(account_fields) |
| 95 | + # can set these since it is a new account |
| 96 | + account_data.opted_asset_balances = opted_asset_balances or {} |
| 97 | + account_data.opted_apps = {app.id: app for app in opted_apps} |
99 | 98 | return new_account |
100 | 99 |
|
101 | 100 | def asset( |
|
0 commit comments