У меня есть некоторый код создания БД sqlite.Есть несколько вариантов - если файл существовал или нет, или если он получает ошибку (запись на жесткий диск, неправильное имя БД, формат и т. Д.).Если метод работает правильно, он возвращает True, если он генерирует исключение, он возвращает False:
def create_db():
try:
db = sqlite3.connect(db_name)
with db:
db.execute("SELECT name FROM db_name WHERE type='table'")
if os.path.isfile(db_name):
my_logger.info('The DB already existed!')
return 'DB existed'
else:
db = sqlite3.connect(db_name)
with db:
db.execute('''CREATE TABLE IF NOT EXISTS City_Weather (fields_description_here)''')
my_logger.info('The DB was created successfully!')
return 'DB created'
except Exception as e:
my_logger.info(e)
return False
И я написал этот модульный тест для функции:
class ReadersTest(unittest.TestCase):
def test_create_db(self):
self.assertEqual(create_db(), 'DB existed')
Странное поведение начинается тогда, когда я пытаюсь начать свои тесты:
DB existed != False
Expected :False
Actual :DB existed
<Click to see difference>
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm 2018.2.2\helpers\pycharm\teamcity\diff_tools.py", line 32, in _patched_equals
old(self, first, second, msg)
File
"C:\Users\path\AppData\Local\Programs\Python\Python37\lib\unittest\case.py", line 839, in assertEqual
assertion_func(first, second, msg=msg)
File "C:\Users\path\AppData\Local\Programs\Python\Python37\lib\unittest\case.py",
line 832, in _baseAssertEqual
raise self.failureException(msg)
AssertionError: False != 'DB existed'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File
"C:\Users\path\AppData\Local\Programs\Python\Python37\lib\unittest\case.py",
line 59, in testPartExecutor
yield
File "C:\Users\path\AppData\Local\Programs\Python\Python37\lib\unittest\case.py", line 615, in run
testMethod()
File "C:\file_path_to_project\utest.py", line 12, in test_create_db
self.assertEqual(readers.Readers.create_db(), 'DB existed')
Почему модуль модульного теста ожидает правильного выражения "False"?Во время тестирования моя БД создана и должна пройти этот тест, но это не так.
Заранее спасибо!