@@ -11,6 +11,7 @@ mod tests {
11
11
12
12
use anyhow:: Result ;
13
13
use regex:: Regex ;
14
+ use rustc_hash:: FxHashMap ;
14
15
15
16
use test_case:: test_case;
16
17
@@ -24,11 +25,12 @@ mod tests {
24
25
25
26
use crate :: linter:: check_path;
26
27
use crate :: registry:: { AsRule , Linter , Rule } ;
28
+ use crate :: rules:: isort;
27
29
use crate :: rules:: pyflakes;
28
30
use crate :: settings:: types:: PreviewMode ;
29
31
use crate :: settings:: { flags, LinterSettings } ;
30
32
use crate :: source_kind:: SourceKind ;
31
- use crate :: test:: { test_path, test_snippet} ;
33
+ use crate :: test:: { test_contents , test_path, test_snippet} ;
32
34
use crate :: { assert_messages, directives} ;
33
35
34
36
#[ test_case( Rule :: UnusedImport , Path :: new( "F401_0.py" ) ) ]
@@ -232,6 +234,36 @@ mod tests {
232
234
Ok ( ( ) )
233
235
}
234
236
237
+ #[ test_case(
238
+ r"
239
+ import submodule.a
240
+ __all__ = ['FOO']
241
+ FOO = 42" ,
242
+ "f401_preview_first_party_submodule"
243
+ ) ]
244
+ fn f401_preview_first_party_submodule ( contents : & str , snapshot : & str ) {
245
+ let diagnostics = test_contents (
246
+ & SourceKind :: Python ( dedent ( contents) . to_string ( ) ) ,
247
+ Path :: new ( "__init__.py" ) ,
248
+ & LinterSettings {
249
+ preview : PreviewMode :: Enabled ,
250
+ isort : isort:: settings:: Settings {
251
+ known_modules : isort:: categorize:: KnownModules :: new (
252
+ vec ! [ "submodule" . parse( ) . unwrap( ) ] ,
253
+ vec ! [ ] ,
254
+ vec ! [ ] ,
255
+ vec ! [ ] ,
256
+ FxHashMap :: default ( ) ,
257
+ ) ,
258
+ ..isort:: settings:: Settings :: default ( )
259
+ } ,
260
+ ..LinterSettings :: for_rule ( Rule :: UnusedImport )
261
+ } ,
262
+ )
263
+ . 0 ;
264
+ assert_messages ! ( snapshot, diagnostics) ;
265
+ }
266
+
235
267
#[ test_case( Rule :: UnusedImport , Path :: new( "F401_24/__init__.py" ) ) ]
236
268
#[ test_case( Rule :: UnusedImport , Path :: new( "F401_25__all_nonempty/__init__.py" ) ) ]
237
269
#[ test_case( Rule :: UnusedImport , Path :: new( "F401_26__all_empty/__init__.py" ) ) ]
0 commit comments