-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test: add basic tests for notify ^ plugin settings
chore: update docstring
- Loading branch information
Showing
7 changed files
with
132 additions
and
8 deletions.
There are no files selected for viewing
7 changes: 2 additions & 5 deletions
7
eox_nelp/management/commands/check_course_due_date_emails_delivery.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,17 @@ | ||
# tasks.py | ||
""" | ||
Celery task related the notifications eox-nelp module. | ||
""" | ||
|
||
import logging | ||
|
||
from celery import shared_task | ||
|
||
logger = logging.getLogger(__name__) | ||
|
||
|
||
@shared_task | ||
def send_course_due_date_emails(): | ||
""" | ||
Task to send upcoming course due date emails. | ||
""" | ||
logger.info("------Sending upcoming course due date emails.-------") | ||
logger.info("This is a log message. yeah yeah") |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
"""This file contains all the test for tasks.py file. | ||
Classes: | ||
SendCourseDueDateEmailtTestCase: Test `send_course_due_date_emails` method. | ||
""" | ||
import unittest | ||
|
||
from eox_nelp.notifications import tasks | ||
from eox_nelp.notifications.tasks import send_course_due_date_emails | ||
|
||
|
||
class SendCourseDueDateEmailtTestCase(unittest.TestCase): | ||
"""Test class for function `send_course_due_date_emails`""" | ||
|
||
def test_send_course_due_date_emails(self): | ||
"""Test when `send_course_due_date_emails` is called | ||
with the required parameters. Check the functions inside are called with | ||
their desired values. | ||
Expected behavior: | ||
- Log error message. | ||
""" | ||
log_sent_email = "------Sending upcoming course due date emails.-------" | ||
|
||
with self.assertLogs(tasks.__name__, level="INFO") as logs: | ||
send_course_due_date_emails() | ||
|
||
self.assertEqual(logs.output, [f"INFO:{tasks.__name__}:{log_sent_email}"]) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
"""This file contains test for the `plugin_settings` method of | ||
common setting of eox-nelp. | ||
Classes: | ||
CommonPluginSettingsTestCase: Test `plugin_settings` method. | ||
""" | ||
import unittest | ||
|
||
from eox_nelp.settings.common import COURSE_CREATOR_APP, EOX_NELP_CELERY_TASKS, plugin_settings | ||
|
||
|
||
class SettingsClass: | ||
""" dummy settings class """ | ||
|
||
|
||
class CommonPluginSettingsTestCase(unittest.TestCase): | ||
"""Test class for function `plugin_settings`""" | ||
|
||
def test_base_common_plugin_settings(self): | ||
"""Test when `plugin_settings` is called | ||
with the required parameters. Check the functions inside are called with | ||
their desired values. | ||
Expected behavior: | ||
- Eox-nelp setting items are presented. | ||
""" | ||
common_settings = SettingsClass() | ||
eox_nelp_config = { | ||
"EOX_NELP_COURSE_CREATORS_BACKEND": "eox_nelp.edxapp_wrapper.backends.course_creators_k_v1", | ||
"EOX_NELP_COURSE_OVERVIEWS_BACKEND": "eox_nelp.edxapp_wrapper.backends.course_overviews_m_v1", | ||
"EOX_NELP_SITE_CONFIGURATION": "eox_nelp.edxapp_wrapper.backends.site_configuration_m_v1", | ||
"EOX_NELP_USER_API": "eox_nelp.edxapp_wrapper.backends.user_api_m_v1", | ||
"EOX_NELP_USER_AUTHN": "eox_nelp.edxapp_wrapper.backends.user_authn_m_v1", | ||
"EOX_NELP_MFE_CONFIG_VIEW": "eox_nelp.edxapp_wrapper.backends.mfe_config_view_m_v1", | ||
"EOX_NELP_COURSE_API": "eox_nelp.edxapp_wrapper.backends.course_api_m_v1", | ||
"FUTUREX_API_URL": "https://testing-site.com", | ||
"FUTUREX_API_CLIENT_ID": "my-test-client-id", | ||
"FUTUREX_API_CLIENT_SECRET": "my-test-client-secret", | ||
} | ||
|
||
plugin_settings(common_settings) | ||
|
||
assert eox_nelp_config.items() <= common_settings.__dict__.items() | ||
|
||
def test_append_course_creator_app(self): | ||
"""Test when `plugin_settings` is called | ||
append the course_creator apps in INSTALLED APPS. | ||
Expected behavior: | ||
- Course creator app is presentend in INSTALLED_APPS. | ||
""" | ||
common_settings = SettingsClass() | ||
setattr(common_settings, "INSTALLED_APPS", []) | ||
|
||
plugin_settings(common_settings) | ||
|
||
self.assertIn(COURSE_CREATOR_APP, getattr(common_settings, "INSTALLED_APPS")) | ||
|
||
def test_append_eox_nelp_celery_imports(self): | ||
"""Test when `plugin_settings` is called | ||
that the eox_nelp_celery_import are added to the previous | ||
CELERY_IMPORTS | ||
Expected behavior: | ||
- EOX_NELP_CELERY_TASKS are presented in CELERY_IMPORTS. | ||
""" | ||
common_settings = SettingsClass() | ||
previous_celery_imports = ( | ||
'example.import.tasks', | ||
'example.import2.tasks', | ||
'example.import3.tasks', | ||
) | ||
setattr(common_settings, "CELERY_IMPORTS", previous_celery_imports) | ||
|
||
plugin_settings(common_settings) | ||
|
||
self.assertEqual( | ||
getattr(common_settings, "CELERY_IMPORTS"), | ||
previous_celery_imports + EOX_NELP_CELERY_TASKS, | ||
) | ||
|
||
def test_create_eox_nelp_celery_imports(self): | ||
"""Test when `plugin_settings` is called | ||
that the eox_nelp_celery_import are created if there are not previous | ||
CELERY_IMPORTS | ||
Expected behavior: | ||
- EOX_NELP_CELERY_TASKS are presented in CELERY_IMPORTS. | ||
""" | ||
common_settings = SettingsClass() | ||
|
||
plugin_settings(common_settings) | ||
|
||
self.assertEqual(getattr(common_settings, "CELERY_IMPORTS"), EOX_NELP_CELERY_TASKS) |