Как лучше всего импортировать классы или функции в тестовый модуль unittest? - PullRequest
0 голосов
/ 27 мая 2020

Как лучше всего импортировать классы или функции в тестовый модуль 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)})
...