1
0
mirror of https://github.com/deadc0de6/dotdrop.git synced 2026-02-04 19:44:45 +00:00

monitor for bad option

This commit is contained in:
deadc0de6
2019-02-12 08:41:28 +01:00
parent 9462d8be23
commit ad2d74e0f1
4 changed files with 34 additions and 6 deletions

View File

@@ -67,7 +67,21 @@ Options:
""".format(BANNER, PROFILE)
class Options:
class AttrMonitor:
_set_attr_err = False
def __setattr__(self, key, value):
"""monitor attribute setting"""
if not hasattr(self, key) and self._set_attr_err:
self._attr_change(key)
super(AttrMonitor, self).__setattr__(key, value)
def _attr_set(self, attr):
"""do something when unexistent attr is set"""
pass
class Options(AttrMonitor):
def __init__(self, args=None):
"""constructor
@@ -89,6 +103,8 @@ class Options:
and not self.args['--no-banner']:
self._header()
self._print_attr()
# start monitoring for bad attribute
self._set_attr_err = True
def _header(self):
"""print the header"""
@@ -172,3 +188,7 @@ class Options:
if callable(val):
continue
self.log.dbg('- {}: \"{}\"'.format(att, val))
def _attr_set(self, attr):
"""error when some inexistent attr is set"""
raise Exception('bad option: {}'.format(attr))

View File

@@ -128,7 +128,7 @@ def load_options(confpath, profile):
o.link = LinkTypes.NOLINK.value
o.install_showdiff = True
o.debug = True
o.dopts = ''
o.compare_dopts = ''
o.variables = {}
return o

View File

@@ -162,9 +162,9 @@ class TestCompare(unittest.TestCase):
# test compare from dotdrop
self.assertFalse(cmd_compare(o, tmp))
# test focus
o.focus = d4
o.compare_focus = d4
self.assertFalse(cmd_compare(o, tmp))
o.focus = '/tmp/fake'
o.compare_focus = '/tmp/fake'
self.assertFalse(cmd_compare(o, tmp))

View File

@@ -53,6 +53,10 @@ class TestUpdate(unittest.TestCase):
self.assertTrue(os.path.exists(d2))
self.addCleanup(clean, d2)
d3t, c3t = create_random_file(fold_config)
self.assertTrue(os.path.exists(d3t))
self.addCleanup(clean, d3t)
# create the directory to test
dpath = os.path.join(fold_config, get_string(5))
dir1 = create_dir(dpath)
@@ -69,11 +73,14 @@ class TestUpdate(unittest.TestCase):
self.assertTrue(os.path.exists(confpath))
o = load_options(confpath, profile)
o.debug = True
dfiles = [d1, dir1, d2]
o.update_showpatch = True
dfiles = [d1, dir1, d2, d3t]
# import the files
o.import_path = dfiles
cmd_importer(o)
# get new config
o = load_options(confpath, profile)
# edit the files
@@ -92,6 +99,7 @@ class TestUpdate(unittest.TestCase):
o.safe = False
o.debug = True
o.update_path = [d1, dir1]
o.update_showpatch = True
cmd_update(o)
# test content
@@ -114,7 +122,7 @@ class TestUpdate(unittest.TestCase):
o.safe = False
o.debug = True
o.update_path = [d2key]
o.iskey = True
o.update_iskey = True
cmd_update(o)
# test content