Как лучше всего импортировать классы или функции в тестовый модуль unittest
?
Предположим, у меня в проекте root есть следующий пакет common
, и я бы нравится тестировать common/utils.py
в common/tests/test_utils.py
:
common
├── __init__.py
├── tests
│ ├── __init__.py
│ └── test_utils.py
└── utils.py
Должен ли я импортировать классы или функции на верхнем уровне тестового модуля или внутри отдельных тестовых случаев (см. ниже)?
import unittest
class TestUtils(unittest.TestCase):
def test_object_factory(self):
from ..utils import object_factory
object_factory = _(foo=1, bar='bar', baz={'a': 1, 'b': (2, 3)})
self.assertTrue(hasattr(o, 'foo'))
self.assertEqual(o.foo, 1)
self.assertTrue(hasattr(o, 'bar'))
self.assertEqual(o.bar, 'bar')
self.assertTrue(hasattr(o, 'baz'))
self.assertEqual(o.baz, {'a': 1, 'b': (2, 3)})