4
4
patch ,
5
5
)
6
6
7
+ from eth_utils import (
8
+ is_same_address ,
9
+ to_bytes ,
10
+ )
11
+
7
12
from ens .constants import (
8
13
EMPTY_ADDR_HEX ,
9
14
)
12
17
)
13
18
from web3 import Web3
14
19
20
+
15
21
'''
16
22
API at: https://github.com/carver/ens.py/issues/2
17
23
'''
18
24
19
- TEST_ADDRESS = "0x000000000000000000000000000000000000dEaD"
20
-
21
25
22
26
@pytest .mark .parametrize (
23
27
'name, full_name, namehash_hex' ,
66
70
),
67
71
],
68
72
)
69
- def test_set_address (ens , name , full_name , namehash_hex ):
73
+ def test_set_address (ens , name , full_name , namehash_hex , TEST_ADDRESS ):
70
74
assert ens .address (name ) is None
71
75
owner = ens .owner ('tester' )
72
76
73
77
ens .setup_address (name , TEST_ADDRESS )
74
- assert ens .address (name ) == TEST_ADDRESS
78
+ assert is_same_address ( ens .address (name ), TEST_ADDRESS )
75
79
76
80
# check that .eth is only appended if guess_tld is True
77
81
namehash = Web3 .toBytes (hexstr = namehash_hex )
78
82
normal_name = ens .nameprep (full_name )
79
83
if ens .nameprep (name ) == normal_name :
80
- assert ens .address (name , guess_tld = False ) == TEST_ADDRESS
84
+ assert is_same_address ( ens .address (name , guess_tld = False ), TEST_ADDRESS )
81
85
else :
82
86
assert ens .address (name , guess_tld = False ) is None
83
87
84
88
# check that the correct namehash is set:
85
- assert ens .resolver (normal_name ).addr (namehash ) == TEST_ADDRESS
89
+ assert is_same_address ( ens .resolver (normal_name ).addr (namehash ), TEST_ADDRESS )
86
90
87
91
# check that the correct owner is set:
88
92
assert ens .owner (name ) == owner
@@ -98,12 +102,12 @@ def test_set_address(ens, name, full_name, namehash_hex):
98
102
('unicÖde.tester.eth' , 'unicöde.tester.eth' ),
99
103
],
100
104
)
101
- def test_set_address_equivalence (ens , name , equivalent ):
105
+ def test_set_address_equivalence (ens , name , equivalent , TEST_ADDRESS ):
102
106
assert ens .address (name ) is None
103
107
104
108
ens .setup_address (name , TEST_ADDRESS )
105
- assert ens .address (name ) == TEST_ADDRESS
106
- assert ens .address (equivalent ) == TEST_ADDRESS
109
+ assert is_same_address ( ens .address (name ), TEST_ADDRESS )
110
+ assert is_same_address ( ens .address (equivalent ), TEST_ADDRESS )
107
111
108
112
ens .setup_address (name , None )
109
113
assert ens .address (name ) is None
@@ -112,7 +116,11 @@ def test_set_address_equivalence(ens, name, equivalent):
112
116
@pytest .mark .parametrize (
113
117
'set_address' ,
114
118
[
115
- TEST_ADDRESS ,
119
+ # since the test uses getTransactionCount,
120
+ # using a same address converted to bytes and hex will error with same count,
121
+ # use two different addresses of each type (hex, bytes)
122
+ "0x000000000000000000000000000000000000dEaD" ,
123
+ to_bytes (hexstr = "0x5B2063246F2191f18F2675ceDB8b28102e957458" ),
116
124
EMPTY_ADDR_HEX ,
117
125
None ,
118
126
'' ,
@@ -129,7 +137,7 @@ def test_set_address_noop(ens, set_address):
129
137
assert eth .getTransactionCount (owner ) == starting_transactions
130
138
131
139
132
- def test_set_address_unauthorized (ens ):
140
+ def test_set_address_unauthorized (ens , TEST_ADDRESS ):
133
141
with pytest .raises (UnauthorizedError ):
134
142
ens .setup_address ('eth' , TEST_ADDRESS )
135
143
@@ -156,7 +164,7 @@ def getowner(name):
156
164
(addr , ['abcdefg' , 'bcdefgh' ], 'cdefghi.eth' )
157
165
158
166
159
- def test_set_resolver_leave_default (ens ):
167
+ def test_set_resolver_leave_default (ens , TEST_ADDRESS ):
160
168
owner = ens .owner ('tester' )
161
169
ens .setup_address ('leave-default-resolver.tester.eth' , TEST_ADDRESS )
162
170
eth = ens .web3 .eth
0 commit comments