Passed
Push — master ( 18b92d...e7c449 )
by Ramon
50s queued 12s
created

TestDiscoverClasses.test_discover_not_supported()   A

Complexity

Conditions 2

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 6
nop 1
dl 0
loc 11
rs 10
c 0
b 0
f 0
1
import sys
2
from pathlib import Path
3
from typing import List
4
from unittest import TestCase
5
6
sys.path.append(str(Path(__file__).parent.parent / 'test_resources'))
7
8
from examples_for_tests.level2.module1 import Class1 as Class1Level2
9
from examples_for_tests.module1 import Class1
10
11
from barentsz import discover, here
12
13
sys.path.append(str(Path(__file__).parent.parent / 'test_resources'))
14
15
16
class TestDiscoverClasses(TestCase):
17
18
    def test_discover(self):
19
        # EXECUTE
20
        discoveries = discover()
21
22
        # VERIFY
23
        self.assertIn('TestDiscoverClasses', [cls.__name__ for cls in discoveries])
24
25
    def test_discover_list_of_classes(self):
26
        # SETUP
27
        path_to_resources = (here().parent / 'test_resources'
28
                             / 'examples_for_tests')
29
30
        # EXECUTE
31
        # discoveries = discover(path_to_resources, what=List[type])
32
33
        discoveries: List[type] = discover(path_to_resources)
34
35
        # VERIFY
36
        self.assertEqual(2, len(discoveries))
37
        self.assertIn(Class1, discoveries)
38
        self.assertIn(Class1Level2, discoveries)
39
40
    def test_discover_list(self):
41
        # SETUP
42
        path_to_resources = (here().parent / 'test_resources'
43
                             / 'examples_for_tests')
44
45
        # EXECUTE
46
        discoveries1 = discover(path_to_resources, what=list)
47
        discoveries2 = discover(path_to_resources, what=List)
48
49
        # VERIFY
50
        self.assertEqual(2, len(discoveries1))
51
        self.assertIn(Class1, discoveries1)
52
        self.assertIn(Class1Level2, discoveries1)
53
54
        self.assertEqual(2, len(discoveries2))
55
        self.assertIn(Class1, discoveries2)
56
        self.assertIn(Class1Level2, discoveries2)
57
58
    def test_discover_not_supported(self):
59
        # SETUP
60
        path_to_resources = (here().parent / 'test_resources'
61
                             / 'examples_for_tests')
62
63
        # EXECUTE
64
        with self.assertRaises(ValueError) as err:
65
            discover(path_to_resources, what=int)
66
67
        # VERIFY
68
        self.assertIn('int', str(err.exception))
69