cfg.py: improve missing file warning

This commit is contained in:
The MMGen Project 2021-09-03 20:17:25 +00:00
commit d2d2ce2ef7
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
2 changed files with 9 additions and 8 deletions

View file

@ -43,17 +43,18 @@ class CfgFile(object):
file_not_found_fs = 'WARNING: {} not found at {!r}'
line_data = namedtuple('cfgfile_line',['name','value','lineno','chunk'])
class warn_missing_file(oneshot_warning):
color = 'yellow' # has no effect, as color not initialized yet
message = '{} not found at {!r}'
def __init__(self):
self.fn = os.path.join(self.fn_dir,self.fn_base)
self.data = self.get_data()
def get_data(self):
try:
return open(self.fn).read().splitlines()
self.data = open(self.fn).read().splitlines()
except:
if self.warn_missing:
msg(self.file_not_found_fs.format(self.desc,self.fn))
return ''
self.warn_missing_file( div=self.fn, fmt_args=(self.desc,self.fn) )
self.data = ''
def copy_data(self):
assert self.write_ok, 'writing to file {!r} not allowed!'.format(self.fn)

View file

@ -21,6 +21,7 @@ class TestSuiteCfg(TestSuiteBase):
networks = ('btc',)
tmpdir_nums = [40]
base_passthru_opts = ()
color = True
cmd_group = (
('nosysfile', (40,'init with missing system cfg sample file', [])),
@ -58,8 +59,7 @@ class TestSuiteCfg(TestSuiteBase):
def nosysfile(self):
t = self.spawn_test()
errstr = CfgFile.file_not_found_fs.format(CfgFileSampleSys.desc,self.path('shared_data')+'/mmgen.cfg')
for i in (1,2,3,4,5):
t.expect(errstr)
t.expect(errstr)
for k in ('usr','sys','sample'):
t.expect('{} cfg file:\s+{}'.format(capfirst(k),self.path(k)),regex=True)
assert not os.path.exists(self.path(k)), self.path(k)