37 lines
1.5 KiB
Python
37 lines
1.5 KiB
Python
""" Tests for Name Affirmation API utils """
|
|
|
|
from unittest import TestCase
|
|
from unittest.mock import patch
|
|
|
|
import ddt
|
|
from edx_django_utils.plugins import PluginError
|
|
|
|
from openedx.features.name_affirmation_api.utils import is_name_affirmation_installed, get_name_affirmation_service
|
|
|
|
|
|
@ddt.ddt
|
|
class TestNameAffirmationAPIUtils(TestCase):
|
|
""" Tests for Name Affirmation API utils """
|
|
|
|
@patch('openedx.features.name_affirmation_api.utils.PluginManager')
|
|
def test_name_affirmation_installed(self, mock_manager):
|
|
mock_manager.get_plugin.return_value = 'mock plugin'
|
|
self.assertTrue(is_name_affirmation_installed())
|
|
|
|
@patch('openedx.features.name_affirmation_api.utils.PluginManager')
|
|
def test_name_affirmation_not_installed(self, mock_manager):
|
|
mock_manager.side_effect = PluginError('No such plugin')
|
|
with self.assertRaises(PluginError):
|
|
self.assertFalse(is_name_affirmation_installed())
|
|
|
|
@patch('edx_name_affirmation.services.NameAffirmationService')
|
|
@ddt.data(True, False)
|
|
def test_get_name_affirmation_service(self, name_affirmation_installed, mock_service):
|
|
with patch('openedx.features.name_affirmation_api.utils.is_name_affirmation_installed',
|
|
return_value=name_affirmation_installed):
|
|
name_affirmation_service = get_name_affirmation_service()
|
|
if name_affirmation_installed:
|
|
self.assertEqual(name_affirmation_service, mock_service())
|
|
else:
|
|
self.assertIsNone(name_affirmation_service)
|