File: test_formatargspec_py35.py

package info (click to toggle)
python-wrapt 2.1.1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 1,592 kB
  • sloc: python: 8,452; ansic: 2,978; makefile: 168; sh: 46
file content (44 lines) | stat: -rw-r--r-- 1,120 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
import unittest
from inspect import getfullargspec

from wrapt.arguments import formatargspec


class TestFormatargspec35(unittest.TestCase):

    def assertFormatEqual(self, func, ref):
        formatted = formatargspec(*getfullargspec(func))
        self.assertEqual(formatted, ref)

    def test_formatargspec(self):
        def foo1():
            pass

        self.assertFormatEqual(foo1, "()")

        def foo2(a, b="c"):
            pass

        self.assertFormatEqual(foo2, ("(a, b='c')"))

        def foo3(a, b, *args, **kwargs):
            pass

        self.assertFormatEqual(foo3, "(a, b, *args, **kwargs)")

        def foo4(a: int, b) -> list:
            return []

        formatted4 = "(a: int, b) -> list"
        self.assertFormatEqual(foo4, formatted4)

        # examples from https://www.python.org/dev/peps/pep-3102/
        def sortwords(*wordlist, case_sensitive=False):
            pass

        self.assertFormatEqual(sortwords, "(*wordlist, case_sensitive=False)")

        def compare(a, b, *, key=None):
            pass

        self.assertFormatEqual(compare, "(a, b, *, key=None)")