Используя tinyDB, приложение сохраняет данные в файл json.Мне нужно выполнить тестирование, если определенные данные уже содержатся в файле базы данных.
Я создаю альтернативную настройку базы данных в методе setUP в переменной db.Я получаю ошибку ниже.Почему переменная db недоступна для пространства имен в тестируемой функции?
При запуске unittest я получаю:
ERROR: test_contains (__main__.TestDB)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test.py", line 65, in setUp
print type(db)
NameError: global name 'db' is not defined
Код для тестирования в проекте / app / sandbox.py
from tinydb import TinyDB, Query
db = TinyDB('db.json')
Check_keyword = Query()
def test_db(keyword):
if db.contains(Check_keyword.keyword == keyword ):
print "keyword already in db"
return True
Unittest в проекте / test.py
from tinydb import TinyDB, Query
from app.sandbox import test_db
class TestDB(unittest.TestCase):
def setUp(self):
self.db = TinyDB('test_db.json')
self.Check_keyword = Query()
def test_contains(self):
data = "doctor salarybljkhl"
result = test_db(data)
self.assertEqual(result, True)