@@ -167,21 +167,21 @@ def test_round_trip(self):
167167 cfg = ('plugins:\n ' +
168168 ' - foo:\n option: !relative $config_dir\n ' +
169169 ' - bar:\n option: !ENV variable\n ' +
170- ' - baz:\n option: !ENV [variable, default]'
171- )
170+ ' - baz:\n option: !ENV [variable, default]' )
172171 with mock .patch ('builtins.open' ,
173172 mock_open_files ({'mkdocs.yml' : cfg })), \
174173 mock .patch ('mike.mkdocs_utils.NamedTemporaryFile' ,
175174 return_value = self .out ), \
176- mock .patch ('os.remove' ) as mremove :
175+ mock .patch ('os.remove' ) as mremove , \
176+ mock .patch .dict (os .environ , {'variable' : 'mock_val' }, clear = True ):
177177 with mkdocs_utils .inject_plugin ('mkdocs.yml' ) as f :
178178 self .assertEqual (f , self .out .name )
179179 mremove .assert_called_once ()
180180
181181 expected = ('plugins:\n - mike\n ' +
182182 "- foo:\n option: !relative '$config_dir'\n " +
183- " - bar:\n option: !ENV 'variable' \n "
184- '- baz:\n option: !ENV [variable, default] \n ' )
183+ ' - bar:\n option: mock_val \n '
184+ '- baz:\n option: mock_val \n ' )
185185 self .assertEqual (self .out .getvalue (), expected )
186186
187187 def test_python_tag (self ):
@@ -224,6 +224,30 @@ def test_inherit(self):
224224 [('mike' , {}), ('bar' , {}), ('foo' , {})]
225225 )
226226
227+ def test_inherit_env (self ):
228+ main_cfg = 'INHERIT: !ENV base_file\n plugins:\n foo: {}\n '
229+ base_cfg = 'plugins:\n bar: {}\n '
230+ files = {'mkdocs.yml' : main_cfg , 'mkdocs-base.yml' : base_cfg }
231+ with mock .patch ('builtins.open' , mock_open_files (files )), \
232+ mock .patch ('mike.mkdocs_utils.NamedTemporaryFile' ,
233+ return_value = self .out ), \
234+ mock .patch ('os.path.exists' , return_value = True ), \
235+ mock .patch ('os.remove' ) as mremove , \
236+ mock .patch .dict (os .environ , {'base_file' : 'mkdocs-base.yml' },
237+ clear = True ):
238+ with mkdocs_utils .inject_plugin ('mkdocs.yml' ) as f :
239+ self .assertEqual (f , 'mike-mkdocs.yml' )
240+ newcfg = yaml .safe_load (self .out .getvalue ())
241+ mremove .assert_called_once ()
242+
243+ self .assertEqual (newcfg , {'plugins' : {
244+ 'mike' : {}, 'bar' : {}, 'foo' : {},
245+ }})
246+ self .assertEqual (
247+ list (newcfg ['plugins' ].items ()),
248+ [('mike' , {}), ('bar' , {}), ('foo' , {})]
249+ )
250+
227251
228252class TestBuild (unittest .TestCase ):
229253 def test_build (self ):
0 commit comments