File: test_launch_params.py

package info (click to toggle)
python-lti 0.9.5-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 404 kB
  • sloc: python: 2,400; sh: 6; makefile: 3
file content (82 lines) | stat: -rw-r--r-- 2,476 bytes parent folder | download
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
        })