ImportObjectsTest   A
last analyzed

Complexity

Total Complexity 11

Size/Duplication

Total Lines 90
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 90
rs 10
c 0
b 0
f 0
wmc 11

9 Methods

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