Failed Conditions
Pull Request — master (#1152)
by Lasse
03:36
created

test_unresolvable_deps()   A

Complexity

Conditions 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 1
dl 0
loc 5
rs 9.4286
1
import os
2
import sys
3
4
import unittest
5
6
sys.path.insert(0, ".")
7
from coalib.collecting.Importers import import_objects
8
from collections import OrderedDict
9
10
11
class ImportObjectsTest(unittest.TestCase):
12
13
    def setUp(self):
14
        current_dir = os.path.split(__file__)[0]
15
        self.testfile1_path = os.path.join(current_dir,
16
                                           "importers_test_dir",
17
                                           "file_one.py")
18
        self.testfile2_path = os.path.join(current_dir,
19
                                           "importers_test_dir",
20
                                           "file_two.py")
21
22
    def test_no_file(self):
23
        self.assertEqual(import_objects([]), [])
24
25
    def test_no_data(self):
26
        self.assertEqual(import_objects(self.testfile1_path), [])
27
28
    def test_name_import(self):
29
        self.assertEqual(
30
            len(import_objects((self.testfile1_path, self.testfile2_path),
31
                               names="name")),
32
            2)
33
        self.assertEqual(
34
            len(import_objects((self.testfile1_path, self.testfile2_path),
35
                               names="last_name")),
36
            0)
37
38
    def test_type_import(self):
39
        self.assertEqual(
40
            len(import_objects(self.testfile1_path,
41
                               types=list,
42
                               verbose=True)),
43
            2)
44
        self.assertEqual(
45
            len(import_objects((self.testfile1_path, self.testfile2_path),
46
                               names="name",
47
                               types=OrderedDict,
48
                               verbose=True)),
49
            0)
50
51
    def test_class_import(self):
52
        self.assertEqual(
53
            len(import_objects((self.testfile1_path, self.testfile2_path),
54
                               supers=list,
55
                               verbose=True)),
56
            1)
57
        self.assertEqual(
58
            len(import_objects((self.testfile1_path, self.testfile2_path),
59
                               supers=str,
60
                               verbose=True)),
61
            0)
62
63
    def test_attribute_import(self):
64
        self.assertEqual(
65
            len(import_objects((self.testfile1_path, self.testfile2_path),
66
                               attributes="method",
67
                               local=True,
68
                               verbose=True)),
69
            1)
70
        self.assertEqual(
71
            len(import_objects((self.testfile1_path, self.testfile2_path),
72
                               attributes="something",
73
                               verbose=True)),
74
            0)
75
76
    def test_local_definition(self):
77
        self.assertEqual(
78
            len(import_objects((self.testfile1_path, self.testfile2_path),
79
                               attributes="method",
80
                               verbose=True)),
81
            2)
82
        self.assertEqual(
83
            len(import_objects((self.testfile1_path, self.testfile2_path),
84
                               attributes="method",
85
                               local=True,
86
                               verbose=True)),
87
            1)
88
89
    def test_invalid_file(self):
90
        with self.assertRaises(ImportError):
91
            import_objects("some/invalid/path",
92
                           attributes="method",
93
                           local=True,
94
                           verbose=True)
95
96
        with self.assertRaises(ImportError):
97
            import_objects("some/invalid/path",
98
                           attributes="method",
99
                           local=True,
100
                           verbose=False)
101
102
103
if __name__ == '__main__':
104
    unittest.main(verbosity=2)
105