У меня есть мертвое простое приложение Flask:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return("Hello World!")
if __name__ == '__main__':
app.run()
вместе с __main__.py
файлом:
from .core import app
import src.core
app.run()
, и я добавил тест:
from unittest import TestCase
import logging as log
import src.core
class runTests(TestCase):
def setUp(self):
src.core.app.testing = True
self.client = src.core.app.test_client()
def test_hello_world(self):
response = self.client.get("/")
log.warning(f"resp: {response.data}")
self.assertEqual(b"Hello World!",response.data)
общая древовидная структура выглядела так:
➜ apptest tree -L 2
.
├── src
│ ├── core.py
│ ├── __main__.py
│ └── __pycache__
└── tests
├── __pycache__
└── test.py
4 directories, 3 files
➜ apptest
Когда я запускаю тесты, я получаю неожиданный вывод:
➜ apptest python -m unittest tests.test
WARNING:root:resp: b'Hello World!'
.
----------------------------------------------------------------------
Ran 1 test in 0.011s
OK
➜ apptest
После новой строки в журнале появляется эта случайная точка.Я попытался изменить test.py, чтобы проверить это:
from unittest import TestCase
import logging as log
import src.core
class runTests(TestCase):
def setUp(self):
src.core.app.testing = True
self.client = src.core.app.test_client()
def test_hello_world(self):
response = self.client.get("/")
log.warning(f"resp: {response.data}")
log.warning("2nd log")
self.assertEqual(b"Hello World!",response.data)
def test_hello_world_2(self):
log.warning("3rd log")
log.warning("4th log")
self.assertEqual("Hello World!",self.teststring)
И вывод:
➜ apptest python -m unittest tests.test
WARNING:root:resp: b'Hello World!'
WARNING:root:2nd log
.WARNING:root:3rd log
WARNING:root:4th log
.
----------------------------------------------------------------------
Ran 2 tests in 0.011s
OK
➜ apptest
И кажется, что последний журнал каждой функции печатает \n.
вместопросто \n
, если мое мышление верно.
Что является причиной этого и как от него избавиться?