File: test_subscribtable_type.py

package info (click to toggle)
python-typish 1.9.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 324 kB
  • sloc: python: 1,632; makefile: 2
file content (29 lines) | stat: -rw-r--r-- 781 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
from unittest import TestCase

from typish import SubscriptableType


class TestSubscriptableType(TestCase):
    def test_subscribing(self):

        class C(metaclass=SubscriptableType):
            ...

        self.assertEqual('arg', C['arg'].__args__)
        self.assertEqual(C, C['arg'].__origin__)

    def test_after_subscription(self):
        class C(metaclass=SubscriptableType):
            @staticmethod
            def _after_subscription(item):
                C.item = item

        C2 = C['arg']
        self.assertEqual('arg', C2.item)

    def test_equility(self):
        class SomeType(metaclass=SubscriptableType):
            ...

        self.assertEqual(SomeType['test'], SomeType['test'])
        self.assertNotEqual(SomeType['test1'], SomeType['test2'])