Skip to content
Snippets Groups Projects
Commit c7a4f97b authored by stvn's avatar stvn
Browse files

Add get-accessor helper for discussions plugins

parent 590286f3
No related branches found
Tags release-2020-12-18-12.59
No related merge requests found
"""
Provide django models to back the discussions app
"""
from __future__ import annotations
from django.core.exceptions import ValidationError
from django.db import models
from django.utils.translation import ugettext_lazy as _
......@@ -75,8 +77,16 @@ class DiscussionsConfiguration(TimeStampedModel):
Default to False, if no configuration exists
"""
configuration = cls.get(context_key)
return configuration.enabled
@classmethod
def get(cls, context_key) -> cls:
"""
Lookup a model by context_key
"""
try:
configuration = cls.objects.get(context_key=context_key)
except cls.DoesNotExist:
return False
return configuration.enabled
configuration = cls(context_key=context_key, enabled=False)
return configuration
......@@ -103,3 +103,36 @@ class DiscussionsConfigurationModelTest(TestCase):
"""
is_enabled = DiscussionsConfiguration.is_enabled(self.course_key_with_values)
assert not is_enabled
def test_get_nonexistent(self):
"""
Assert we get an "empty" model back for nonexistent records
"""
configuration = DiscussionsConfiguration.get(self.course_key_without_config)
assert configuration is not None
assert not configuration.enabled
assert not configuration.lti_configuration
assert not configuration.plugin_configuration
assert not configuration.provider_type
def test_get_defaults(self):
"""
Assert we can lookup a record with default values
"""
configuration = DiscussionsConfiguration.get(self.course_key_with_defaults)
assert configuration is not None
assert configuration.enabled
assert not configuration.lti_configuration
assert not configuration.plugin_configuration
assert not configuration.provider_type
def test_get_explicit(self):
"""
Assert we can lookup a record with explicitly-set values
"""
configuration = DiscussionsConfiguration.get(self.course_key_with_values)
assert configuration is not None
assert not configuration.enabled
assert not configuration.lti_configuration
assert configuration.plugin_configuration
assert configuration.provider_type == 'cs_comments_service'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment