Пример #1
0
 def test_diff_cfg_with_new_allowed(self):
     """diff config with new keys and new_allowed set to True"""
     # create base config
     cfg1 = CfgNode()
     cfg1.A = CfgNode()
     cfg1.A.set_new_allowed(True)
     cfg1.A.Y = 2
     # case 3: new allowed set, new config has new keys
     cfg2 = cfg1.clone()
     cfg2.A.X = 2
     gt = CfgNode()
     gt.A = CfgNode()
     gt.A.X = 2
     self.assertEqual(gt, get_diff_cfg(cfg1, cfg2))
Пример #2
0
 def test_get_diff_cfg(self):
     """check config that is diff from default config, no new keys"""
     # create base config
     cfg1 = CfgNode()
     cfg1.A = CfgNode()
     cfg1.A.Y = 2
     # case 1: new allowed not set, new config has only old keys
     cfg2 = cfg1.clone()
     cfg2.set_new_allowed(False)
     cfg2.A.Y = 3
     gt = CfgNode()
     gt.A = CfgNode()
     gt.A.Y = 3
     self.assertEqual(gt, get_diff_cfg(cfg1, cfg2))
Пример #3
0
    def test_merge_from_list_with_new_allowed(self):
        """
        YACS's merge_from_list doesn't take new_allowed into account, D2Go override its behavior, and this test covers it.
        """
        # new_allowed is not set
        cfg = CfgNode()
        cfg.A = CfgNode()
        cfg.A.X = 1
        self.assertRaises(Exception, cfg.merge_from_list, ["A.Y", "2"])

        # new_allowed is set for sub key
        cfg = CfgNode()
        cfg.A = CfgNode(new_allowed=True)
        cfg.A.X = 1
        cfg.merge_from_list(["A.Y", "2"])
        self.assertEqual(cfg.A.Y,
                         2)  # note that the string will be converted to number
        # however new_allowed is not set for root key
        self.assertRaises(Exception, cfg.merge_from_list, ["B", "3"])
Пример #4
0
 def test_diff_cfg_no_new_allowed(self):
     """check that if new_allowed is False, new keys cause key error"""
     # create base config
     cfg1 = CfgNode()
     cfg1.A = CfgNode()
     cfg1.A.set_new_allowed(False)
     cfg1.A.Y = 2
     # case 2: new allowed not set, new config has new keys
     cfg2 = cfg1.clone()
     cfg2.A.X = 2
     self.assertRaises(KeyError, get_diff_cfg, cfg1, cfg2)