====================================================================== ERROR: test_all_cycle (conftool.tests.integration.test_dbconfig.ConftoolTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/cdanis/work/gits/conftool/conftool/tests/integration/test_dbconfig.py", line 79, in test_all_cycle self.assertEqual(cli.run_action(), 0) File "/home/cdanis/work/gits/conftool/conftool/extensions/dbconfig/cli.py", line 30, in run_action result = getattr(self, '_run_on_{}'.format(self.args.object_name))() File "/home/cdanis/work/gits/conftool/conftool/extensions/dbconfig/cli.py", line 124, in _run_on_config return self.db_config.commit(batch=self.args.batch, datacenter=dc) File "/home/cdanis/work/gits/conftool/conftool/extensions/dbconfig/config.py", line 316, in commit has_diff, diff = self.diff_configs(previous_config, config, datacenter=datacenter) File "/home/cdanis/work/gits/conftool/conftool/extensions/dbconfig/config.py", line 282, in diff_configs _to_json_lines(_get(a, [dc, stanza])), File "/home/cdanis/work/gits/conftool/conftool/extensions/dbconfig/config.py", line 255, in _get if b not in subtree: TypeError: argument of type 'NoneType' is not iterable A: {'dcA': None, 'dcB': None} B: {'dcA': {'sectionLoads': defaultdict(. at 0x7f64f4403d90>, {'s1': [{'dba1': 5}, {'dba2': 10}], 's2': [{'dba2': 10}, {}]}), 'groupLoadsBySection': {'s1': defaultdict(, {'recentChanges': OrderedDict([('dba2', 1)])})}, 'readOnlyBySection': {}}} --get-> {'sectionLoads': defaultdict(. at 0x7f64f4403d90>, {'s1': [{'dba1': 5}, {'dba2': 10}], 's2': [{'dba2': 10}, {}]}), 'groupLoadsBySection': {'s1': defaultdict(, {'recentChanges': OrderedDict([('dba2', 1)])})}, 'readOnlyBySection': {}}