@@ -13,10 +13,16 @@ def setUp(self):
13
13
def tearDown (self ):
14
14
shutil .rmtree (self .plugin_dir )
15
15
16
- def _create (self , filename , content ):
17
- with file (os .path .join (self .plugin_dir , filename ), 'w+' ) as fd :
16
+ def _create (self , filename , content , path = None ):
17
+ path = (self .plugin_dir
18
+ if path is None
19
+ else os .path .join (self .plugin_dir , path ))
20
+ with file (os .path .join (path , filename ), 'w+' ) as fd :
18
21
fd .write (content )
19
22
23
+ def _create_dir (self , path ):
24
+ os .makedirs (os .path .join (self .plugin_dir , path ))
25
+
20
26
def test_empty_directory (self ):
21
27
sut = PluginLoader ()
22
28
@@ -31,3 +37,28 @@ def test_load_simple_file(self):
31
37
sut .load_directory (self .plugin_dir )
32
38
33
39
self .assertEqual (['Foo' ], sut .plugins .keys ())
40
+
41
+ def test_ignorable_classes (self ):
42
+ self ._create ('foo.py' , 'class Foo(object): pass' )
43
+ sut = PluginLoader ()
44
+
45
+ sut .load_directory (self .plugin_dir , onlyif = lambda x , y : False )
46
+
47
+ self .assertEquals ({}, sut .plugins )
48
+
49
+ def test_containing_directories (self ):
50
+ self ._create_dir ('foo' )
51
+ sut = PluginLoader ()
52
+
53
+ sut .load_directory (self .plugin_dir )
54
+
55
+ self .assertEquals ({}, sut .plugins )
56
+
57
+ def test_recursive_mode (self ):
58
+ self ._create_dir ('foo' )
59
+ self ._create ('bar.py' , 'class Bazz(object): pass' , 'foo' )
60
+ sut = PluginLoader ()
61
+
62
+ sut .load_directory (self .plugin_dir , recursive = True )
63
+
64
+ self .assertEquals (['Bazz' ], sut .plugins .keys ())
0 commit comments