楼主非专业 python 开发,今天遇到个完全没头脑的问题,请赐教!.
- 今天 unittest 单元测试一直找不到测试文件,一行一行排查.
- 结果居然是使用
geoip2.database模块内一个全局变量read = geoip2.database.Reader(geoipfile) - 只要有这个全局变量,测试文件就找不到,
geoipfile没影响...这是咋回事啊??😵😵😵...
import unittest
from .geoip import location
class Test_lib(unittest.TestCase):
def test_locations(self):
ips = ['23.250.80.1', '24.199.128.3', '31.173.152.1', '186.115.160.2']
adds = locations(ips)
self.assertEqual(len(adds), 4)
#!/usr/bin/python3
import geoip2.database, logging
geoipfile = "./GeoLite2-City.mmdb"
read = geoip2.database.Reader(geoipfile)
def locations(ips: list[str]) -> list:
s = location()
next(s)
return [s.send(x) for x in ips]
def location() -> list:
ip = "1.0.0.1"
while True:
try:
response = read.city(ip)
a = [ip, response.location.longitude, response.location.latitude]
except Exception as e:
logging.exception(e)
a = []
ip = yield a