Passed
Push — master ( dc8133...73195b )
by Ramon
01:02 queued 11s
created

tests.classes.test_literal_meta   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 18
dl 0
loc 26
rs 10
c 0
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A TestLiteralMeta.test_from_literal() 0 8 1
A TestLiteralMeta.test_str() 0 2 1
A TestLiteralMeta.test_multiple_args() 0 7 1
1
from unittest import TestCase
2
3
from typish import LiteralAlias
4
5
6
class TestLiteralMeta(TestCase):
7
    def test_from_literal(self):
8
9
        class LiteralMock:
10
            __args__ = (42,)
11
12
        alias = LiteralAlias.from_literal(LiteralMock)
13
14
        self.assertTrue(isinstance(42, alias))
15
16
    def test_str(self):
17
        self.assertEqual('Literal[42]', str(LiteralAlias[42]))
18
19
    def test_multiple_args(self):
20
        self.assertTrue(isinstance(1, LiteralAlias[1, 2]))
21
        self.assertTrue(isinstance(2, LiteralAlias[1, 2]))
22
        self.assertTrue(isinstance(1, LiteralAlias[(1, 2)]))
23
        self.assertTrue(isinstance(2, LiteralAlias[(1, 2)]))
24
        self.assertTrue(isinstance(1, LiteralAlias[((1, 2),)]))
25
        self.assertTrue(isinstance(2, LiteralAlias[((1, 2),)]))
26