Фишки Python
29 subscribers
2 photos
3 files
29 links
Всё что ты хотел узнать, но ленился спросить.

Декораторы, итераторы и контракты.
Download Telegram
assert
def test_2plus2():
assert 2 + 2 == 5, 'Error not equals'
unittest
import unittest

class TestHomework(unittest.TestCase):
def test_2plus2(self):
self.assertEqual(2 + 2, 5)

if __name__ == "__main__":
unittest.main()
self.assertEqual(a, b)

self.assertTrue(b)
self.assertFalse(b)

with self.assertRaises(TypeError):
s.split(10)
python -m unittest test_module.py
Запуск всех тестов в текущей папке:

python -m unittest .
def setUp(self): ... - вызывается перед запуском теста
def tearDown(self): ... - после отработки теста
@classmethod
def setUpClass(cls): ... - перед запуском всех тестов

@classmethod
def tearDownClass(cls): ... - после отработки всех тестов
unittest - клон JUnit для python, camelCase и многословность это не круто
pip install -U pytest
Найти все тесты и запустить их:

python -m pytest
python -m pytest test_me.py
python -m pytest test_me.py::test_2plus2
Тестирует функции с именем test_*, методы test_* в классе Test* или в классе наследнике unittest.TestCase
Тестирование doctest-ов:

python -m pytest --doctest-modules
# content of test_sample.py
def inc(x):
return x + 1

def test_answer():
assert inc(3) == 5
$ pytest