2018-05-03 16:10:33 -04:00
|
|
|
"""Tests for acme.magic_typing."""
|
|
|
|
|
import sys
|
|
|
|
|
import unittest
|
|
|
|
|
|
2020-04-15 14:27:55 -04:00
|
|
|
try:
|
|
|
|
|
import mock
|
|
|
|
|
except ImportError: # pragma: no cover
|
|
|
|
|
from unittest import mock # type: ignore
|
2018-05-03 16:10:33 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class MagicTypingTest(unittest.TestCase):
|
|
|
|
|
"""Tests for acme.magic_typing."""
|
|
|
|
|
def test_import_success(self):
|
|
|
|
|
try:
|
|
|
|
|
import typing as temp_typing
|
|
|
|
|
except ImportError: # pragma: no cover
|
|
|
|
|
temp_typing = None # pragma: no cover
|
|
|
|
|
typing_class_mock = mock.MagicMock()
|
|
|
|
|
text_mock = mock.MagicMock()
|
|
|
|
|
typing_class_mock.Text = text_mock
|
|
|
|
|
sys.modules['typing'] = typing_class_mock
|
|
|
|
|
if 'acme.magic_typing' in sys.modules:
|
|
|
|
|
del sys.modules['acme.magic_typing'] # pragma: no cover
|
2020-03-16 12:43:48 -04:00
|
|
|
from acme.magic_typing import Text
|
2018-05-03 16:10:33 -04:00
|
|
|
self.assertEqual(Text, text_mock)
|
|
|
|
|
del sys.modules['acme.magic_typing']
|
|
|
|
|
sys.modules['typing'] = temp_typing
|
|
|
|
|
|
|
|
|
|
def test_import_failure(self):
|
|
|
|
|
try:
|
|
|
|
|
import typing as temp_typing
|
|
|
|
|
except ImportError: # pragma: no cover
|
|
|
|
|
temp_typing = None # pragma: no cover
|
|
|
|
|
sys.modules['typing'] = None
|
|
|
|
|
if 'acme.magic_typing' in sys.modules:
|
|
|
|
|
del sys.modules['acme.magic_typing'] # pragma: no cover
|
2020-03-16 12:43:48 -04:00
|
|
|
from acme.magic_typing import Text
|
2018-05-03 16:10:33 -04:00
|
|
|
self.assertTrue(Text is None)
|
|
|
|
|
del sys.modules['acme.magic_typing']
|
|
|
|
|
sys.modules['typing'] = temp_typing
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
unittest.main() # pragma: no cover
|