def test_undetermined_options(self): menu = Menu(1).append_options(Option(1, 'repeated')) options = [Option(1, 'a'), Option(1, 'b'), Option(1, 'c')] for opt in options: try: self.assertRaises(UndeterminedOption, menu.append_options(opt)) except UndeterminedOption: pass
def test_options_management(self): menu = Menu('main') self.assertFalse(menu.options) opt = Option(1, 'unpinned') menu.append_options(opt) self.assertEqual(1, len(menu.options)) self.assertEqual(opt, menu.options.get('1')) menu.options.clear() options = [Option(1, 'one'), Option(2, 'two'), Option(3, 'three')] menu.append_options(*options) for opt in options: inp = opt.inp self.assertEqual(opt, menu.options.get(inp)) self.assertEqual(len(options), len(menu.options)) for opt in options: menu.remove_options(opt) self.assertTrue(menu.options.get(opt.inp, True)) self.assertEqual(0, len(menu.options)) menu.append_options(*options) for opt in options: menu.remove_options(opt.inp) self.assertTrue(menu.options.get(opt.inp, True)) self.assertEqual(0, len(menu.options))