Здесь я сделал класс питона для подключения Монго и получить данные из Монго базы данных и процесса его я сделал Тестовый блок для этого я получил следующим сообщение об ошибкеNameError: глобальное имя «клиент» не определен
NameError: глобальное имя 'клиент' не определен
класс питона:
from pymongo.errors import ConnectionFailure, AutoReconnect
import pymongo
from pymongo import MongoClient
class ConnectionError(Exception):
pass
class ChkMongo:
item_list=[]
dict1={}
def makeMongocon(self):
global client
try :
client = MongoClient("localhost", 27017)
except AutoReconnect, e:
raise ConnectionFailure(str(e))
def findRecords(self):
self.db = client.serv
for item in self.db.serv.find():
self.item_list.insert(0,item)
return self.item_list
if __name__ == '__main__':
c=ChkMongo()
c.makeMongocon()
print(c.findRecords())
мой блок тест
from pymongo.errors import ConnectionFailure
import unittest;
from app.ChkMongo import *
class TestChkMongo(unittest.TestCase):
def setUp(self):
self.c=ChkMongo()
def test_makeMongocon(self):
self.assertRaises(ConnectionFailure,self.c.makeMongocon)
def test_findRecords(self):
print(self.c.findRecords())
self.assertDictContainsSubset({'name':'matthew'},self.c.findRecords())
def test_calculate_charge_with_tax(self):
self.assertAlmostEqual(290,self.c.calculate_charge_with_tax('matthew'))
if __name__ == '__main__':
unittest.main()
я получил следующее сообщение об ошибке при запуске тестовых случаев, но запустить скрипт питона, который будет работать нормально
Ошибка:
Traceback (most recent call last):
File "/test/test_chkMongo.py", line 16, in test_findRecords
print(self.c.findRecords())
File "n/app/ChkMongo.py", line 29, in findRecords
self.db = client.serventer code here
NameError: global name 'client' is not defined
, когда я изменить в качестве переменной экземпляра я получил следующее сообщение об ошибке, когда я запускаю тест блока я получил следующую ошибку: self.db = self.client.serv AttributeError: экземпляр ChkMongo не имеет атрибута «клиент» – kayu
Ну, ваш метод 'test_findRecords' не вызывает метод makeMongocon для настройки соединения. Как вы ожидаете, что это сработает? –