File: test_pep3107.py

package info (click to toggle)
python-jsonrpc 1.13.0-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 484 kB
  • sloc: python: 3,173; makefile: 155
file content (28 lines) | stat: -rw-r--r-- 907 bytes parent folder | download | duplicates (4)
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
from ..manager import JSONRPCResponseManager

import sys

if sys.version_info < (2, 7):
    import unittest2 as unittest
else:
    import unittest


class TestJSONRPCResponseManager(unittest.TestCase):
    @unittest.skipIf(sys.version_info < (3, 5), "Test Py3.5+ functionality")
    def test_typeerror_with_annotations(self):
        """If a function has Python3 annotations and is called with improper
        arguments, make sure the framework doesn't fail with inspect.getargspec
        """
        from .py35_utils import distance

        dispatcher = {
            "distance": distance,
        }

        req = '{"jsonrpc": "2.0", "method": "distance", "params": [], "id": 1}'
        result = JSONRPCResponseManager.handle(req, dispatcher)

        # Make sure this returns JSONRPCInvalidParams rather than raising
        # UnboundLocalError
        self.assertEqual(result.error['code'], -32602)