1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
import unittest
from lti import LaunchParams, DEFAULT_LTI_VERSION, InvalidLTIConfigError
from lti.launch_params import InvalidLaunchParamError
class TestLaunchParams(unittest.TestCase):
def test_constructor(self):
lp = LaunchParams()
self.assertTrue(lp['lti_version'], DEFAULT_LTI_VERSION)
self.assertTrue(lp['lti_message_type'], 'basic-lti-launch-request')
lp = LaunchParams({
'lti_version': 'LTI-foo',
'lti_message_type': 'bar',
'resource_link_id': 123
})
self.assertTrue(lp['resource_link_id'], 123)
self.assertTrue(lp['lti_version'], 'LTI-foo')
self.assertRaises(InvalidLaunchParamError, LaunchParams, {
'foo': 'bar'
})
def test_get_item(self):
lp = LaunchParams()
self.assertEqual(lp['lti_version'], DEFAULT_LTI_VERSION)
with self.assertRaises(KeyError):
foo = lp['foo']
def test_set_item(self):
lp = LaunchParams()
lp['lti_version'] = 'bar'
self.assertEqual(lp['lti_version'], 'bar')
def test_list_params(self):
lp = LaunchParams({'roles': 'foo,bar,baz'})
self.assertEqual(lp['roles'], ['foo','bar','baz'])
self.assertEqual(lp._params['roles'], 'foo,bar,baz')
lp['roles'] = ['bar','baz']
self.assertEqual(lp['roles'], ['bar','baz'])
self.assertEqual(lp._params['roles'], 'bar,baz')
lp['roles'] = 'blah, bluh '
self.assertEqual(lp['roles'], ['blah','bluh'])
def test_non_spec_params(self):
lp = LaunchParams()
lp.set_non_spec_param('foo', 'bar')
self.assertEqual(lp.get_non_spec_param('foo'), 'bar')
self.assertEqual(lp._params['foo'], 'bar')
with self.assertRaises(KeyError):
lp['foo']
def test_dict_behavior(self):
lp = LaunchParams({
'lti_version': 'foo',
'lti_message_type': 'bar'
})
self.assertEqual(len(lp), 2)
lp.update({'resource_link_id': 1})
self.assertEqual(len(lp), 3)
self.assertRaises(InvalidLaunchParamError, lp.update, {
'foo': 'bar'
})
self.assertEqual(
set(lp.keys()),
{'lti_version', 'lti_message_type', 'resource_link_id'}
)
self.assertEqual(dict(lp), {
'lti_version': 'foo',
'lti_message_type': 'bar',
'resource_link_id': 1
})
|