88
99import geoip2 .database
1010import maxminddb
11+ import ipaddress
12+
13+ from ipaddress import IPv4Network , IPv6Network
1114
1215try :
1316 import maxminddb .extension
@@ -74,6 +77,7 @@ def test_anonymous_ip(self):
7477 self .assertEqual (record .is_public_proxy , False )
7578 self .assertEqual (record .is_tor_exit_node , False )
7679 self .assertEqual (record .ip_address , ip_address )
80+ self .assertEqual (record .network , ipaddress .ip_network ('1.2.0.0/16' ))
7781 reader .close ()
7882
7983 def test_asn (self ):
@@ -86,6 +90,7 @@ def test_asn(self):
8690 self .assertEqual (record .autonomous_system_organization ,
8791 'Telstra Pty Ltd' )
8892 self .assertEqual (record .ip_address , ip_address )
93+ self .assertEqual (record .network , ipaddress .ip_network ('1.128.0.0/11' ))
8994
9095 self .assertRegex (str (record ), r'geoip2.models.ASN\(.*1\.128\.0\.0.*\)' ,
9196 'str representation is correct' )
@@ -116,6 +121,7 @@ def test_connection_type(self):
116121 record = reader .connection_type (ip_address )
117122 self .assertEqual (record .connection_type , 'Cable/DSL' )
118123 self .assertEqual (record .ip_address , ip_address )
124+ self .assertEqual (record .network , ipaddress .ip_network ('1.0.1.0/24' ))
119125
120126 self .assertRegex (str (record ), r'ConnectionType\(\{.*Cable/DSL.*\}\)' ,
121127 'ConnectionType str representation is reasonable' )
@@ -131,6 +137,8 @@ def test_country(self):
131137 record = reader .country ('81.2.69.160' )
132138 self .assertEqual (record .traits .ip_address , '81.2.69.160' ,
133139 'IP address is added to model' )
140+ self .assertEqual (record .traits .network ,
141+ ipaddress .ip_network ('81.2.69.160/27' ))
134142 self .assertEqual (record .country .is_in_european_union , True )
135143 self .assertEqual (record .registered_country .is_in_european_union , False )
136144 reader .close ()
@@ -143,6 +151,7 @@ def test_domain(self):
143151 record = reader .domain (ip_address )
144152 self .assertEqual (record .domain , 'maxmind.com' )
145153 self .assertEqual (record .ip_address , ip_address )
154+ self .assertEqual (record .network , ipaddress .ip_network ('1.2.0.0/16' ))
146155
147156 self .assertRegex (str (record ), r'Domain\(\{.*maxmind.com.*\}\)' ,
148157 'Domain str representation is reasonable' )
@@ -167,6 +176,8 @@ def test_enterprise(self):
167176 self .assertEqual (record .traits .connection_type , 'Cable/DSL' )
168177 self .assertTrue (record .traits .is_legitimate_proxy )
169178 self .assertEqual (record .traits .ip_address , ip_address )
179+ self .assertEqual (record .traits .network ,
180+ ipaddress .ip_network ('74.209.16.0/20' ))
170181
171182 def test_isp (self ):
172183 reader = geoip2 .database .Reader (
@@ -180,6 +191,7 @@ def test_isp(self):
180191 self .assertEqual (record .isp , 'Telstra Internet' )
181192 self .assertEqual (record .organization , 'Telstra Internet' )
182193 self .assertEqual (record .ip_address , ip_address )
194+ self .assertEqual (record .network , ipaddress .ip_network ('1.128.0.0/11' ))
183195
184196 self .assertRegex (str (record ), r'ISP\(\{.*Telstra.*\}\)' ,
185197 'ISP str representation is reasonable' )
0 commit comments