File tree Expand file tree Collapse file tree 3 files changed +35
-1
lines changed
Expand file tree Collapse file tree 3 files changed +35
-1
lines changed Original file line number Diff line number Diff line change @@ -143,7 +143,11 @@ impl CompilationSource {
143143 if path. is_dir ( ) {
144144 code_map. extend ( self . compile_dir (
145145 & path,
146- format ! ( "{}{}" , parent, file_name) ,
146+ if parent. is_empty ( ) {
147+ file_name. to_string ( )
148+ } else {
149+ format ! ( "{}.{}" , parent, file_name)
150+ } ,
147151 mode,
148152 ) ?) ;
149153 } else if file_name. ends_with ( ".py" ) {
Original file line number Diff line number Diff line change 2626 assert 'dir_module' not in str (e )
2727else :
2828 assert False
29+
30+ from dir_module import dir_module_inner
31+ assert dir_module_inner .__name__ == 'dir_module.dir_module_inner'
Original file line number Diff line number Diff line change @@ -823,3 +823,30 @@ impl AsRef<Context> for VirtualMachine {
823823 & self . ctx
824824 }
825825}
826+
827+ #[ test]
828+ fn test_nested_frozen ( ) {
829+ use rustpython_vm as vm;
830+
831+ vm:: Interpreter :: with_init ( Default :: default ( ) , |vm| {
832+ // vm.add_native_modules(rustpython_stdlib::get_module_inits());
833+ vm. add_frozen ( rustpython_vm:: py_freeze!( dir = "../extra_tests/snippets" ) ) ;
834+ } )
835+ . enter ( |vm| {
836+ let scope = vm. new_scope_with_builtins ( ) ;
837+
838+ let code_obj = vm
839+ . compile (
840+ "from dir_module.dir_module_inner import value2" ,
841+ vm:: compile:: Mode :: Exec ,
842+ "<embedded>" . to_owned ( ) ,
843+ )
844+ . map_err ( |err| vm. new_syntax_error ( & err) )
845+ . unwrap ( ) ;
846+
847+ if let Err ( e) = vm. run_code_obj ( code_obj, scope. clone ( ) ) {
848+ vm. print_exception ( e. clone ( ) ) ;
849+ assert ! ( false ) ;
850+ }
851+ } )
852+ }
You can’t perform that action at this time.
0 commit comments