Example #1
0
    def test_option_value_list(self):

        opt_type1 = ListOptionType(value_type=EnumOptionType(
            values=(('off', 0), ('size', 1), ('speed', 2))))

        opt_value = OptionValue(opt_type1)

        cond = Condition(None, _condition, flag=True, opt_value=opt_value)
        cond2 = Condition(cond, _condition, flag=False, opt_value=opt_value)

        cond_value = ConditionalValue(op_iadd(1), cond)
        cond_value2 = ConditionalValue(op_iadd(0), cond2)
        cond_value3 = ConditionalValue(op_iadd(2), cond)
        cond_value4 = ConditionalValue(op_iadd(1), cond2)

        opt_value.append_value(cond_value)
        opt_value.append_value(cond_value2)
        opt_value.append_value(cond_value3)
        opt_value.append_value(cond_value4)

        self.assertEqual(opt_value.get({}, None), [1, 2])

        opt_value.prepend_value(cond_value3)
        self.assertEqual(opt_value.get({}, None), [2, 1, 2])

        opt_value = copy.copy(opt_value)
        self.assertEqual(opt_value.get({}, None), [2, 1, 2])

        self.assertIs(opt_value.option_type, opt_type1)
Example #2
0
    def test_option_value(self):
        opt_type1 = RangeOptionType(min_value=0, max_value=5)

        opt_value = OptionValue(opt_type1)

        cond = Condition(None, _condition, flag=True, opt_value=opt_value)
        cond_value = ConditionalValue(op_iadd(2), cond)
        cond_value2 = ConditionalValue(op_iadd(3), cond)
        cond_value3 = ConditionalValue(op_iadd(3), cond)

        opt_value.append_value(cond_value)
        opt_value.append_value(cond_value2)
        opt_value.append_value(cond_value3)

        self.assertEqual(opt_value.get(options={}, context=None), 5)
Example #3
0
    def test_option_value2(self):
        opt_value = OptionValue(OptionType(int))

        cond_true = Condition(None, _condition, flag=True)
        cond_false = Condition(cond_true,  _condition, flag=False)
        cond_false = Condition(cond_false, _condition, flag=True)

        opt_value.append_value(ConditionalValue(op_iadd(2), cond_false))
        self.assertEqual(opt_value.get({}, None), 0)

        opt_value.append_value(ConditionalValue(op_iadd(3), cond_true))
        self.assertEqual(opt_value.get({}, None), 3)

        opt_value.append_value(ConditionalValue(op_iadd(1), cond_true))
        self.assertEqual(opt_value.get({}, None), 4)

        opt_value.append_value(ConditionalValue(op_iadd(1), cond_false))
        self.assertEqual(opt_value.get({}, None), 4)

        opt_value2 = OptionValue(OptionType(int))

        opt_value.append_value(
            ConditionalValue(op_set(opt_value2), cond_true))

        opt_value2.append_value(ConditionalValue(op_set(7), cond_true))

        self.assertEqual(opt_value.get({}, None, _convert_value), 7)
        self.assertEqual(opt_value2.get({}, None, _convert_value), 7)

        opt_value2.append_value(ConditionalValue(op_set(8), cond_true))

        self.assertEqual(opt_value.get({}, None, _convert_value), 8)
        self.assertEqual(opt_value2.get({}, None, _convert_value), 8)

        opt_value.append_value(ConditionalValue(op_isub(0), cond_true))

        self.assertEqual(opt_value.get({}, None, _convert_value), 8)

        tmp_opt_value = opt_value.copy()

        self.assertEqual(tmp_opt_value.get({}, None, _convert_value), 8)

        tmp_opt_value.append_value(ConditionalValue(op_iadd(2), cond_true))

        self.assertEqual(tmp_opt_value.get({}, None, _convert_value), 10)
Example #4
0
    def test_option_value3(self):
        opt_value = OptionValue(OptionType(int))

        opt_value.append_value(ConditionalValue(op_set(1)))
        self.assertEqual(opt_value.get({}, None), 1)
        opt_value.append_value(ConditionalValue(op_set(0)))
        self.assertEqual(opt_value.get({}, None), 0)

        opt_value_list = OptionValue(ListOptionType(value_type=int))
        opt_value_list.append_value(ConditionalValue(op_set(1)))
        self.assertEqual(opt_value_list.get({}, None), 1)

        opt_value_list.append_value(ConditionalValue(op_iadd(0)))
        self.assertEqual(opt_value_list.get({}, None), "1, 0")
Example #5
0
    def test_option_value_cyclic(self):
        opt_value1 = OptionValue(OptionType(value_type=int))
        opt_value2 = OptionValue(RangeOptionType(min_value=0, max_value=5))

        opt_value1.append_value(ConditionalValue(op_set(1)))
        self.assertEqual(opt_value1.get({}, None, _convert_value), 1)

        opt_value2.append_value(ConditionalValue(op_set(2)))
        self.assertEqual(opt_value2.get({}, None, _convert_value), 2)

        opt_value1.append_value(ConditionalValue(op_iadd(opt_value2)))
        self.assertEqual(opt_value1.get({}, None, _convert_value), 3)

        opt_value2.append_value(ConditionalValue(op_iadd(opt_value1)))

        self.assertEqual(opt_value2.get({}, None, _convert_value), 5)

        opt_value1.append_value(ConditionalValue(op_iadd(opt_value2)))

        self.assertEqual(opt_value2.get({}, None, _convert_value),
                         opt_value2.option_type(7))

        self.assertEqual(opt_value1.get({}, None, _convert_value), 7)
Example #6
0
    def test_options_refs(self):
        options = Options()

        options.opt = RangeOptionType(min_value=1, max_value=100)
        options.warn_level = RangeOptionType(min_value=0, max_value=5)

        options.warn_level = op_iadd(options.opt)
        self.assertEqual(options.warn_level, 1)

        options.If().warn_level.eq(options.opt).warn_level += 1
        self.assertEqual(options.warn_level, 2)

        options.opt = 2

        self.assertEqual(options.warn_level, 3)

        options2 = Options()
        options2.opt1 = RangeOptionType(min_value=1, max_value=100)
        options2.opt2 = RangeOptionType(min_value=1, max_value=100)

        options.warn_level = options2.opt1

        self.assertEqual(options.warn_level.get(), options2.opt1.get())
        options2.opt1 = 4
        self.assertEqual(options.warn_level.get(), options2.opt1.get())

        self.assertRaises(
            ErrorOptionsCyclicallyDependent, options2.opt2.set, options.opt)

        options.warn_level.set(options.opt)
        self.assertEqual(options.warn_level, 2)

        options.test = 1
        self.assertEqual(options.test.get(), 1)

        options.opt += options.opt

        self.assertEqual(options.opt, 4)
Example #7
0
    def test_options_refs(self):
        options = Options()

        options.opt = RangeOptionType(min_value=1, max_value=100)
        options.warn_level = RangeOptionType(min_value=0, max_value=5)

        options.warn_level = op_iadd(options.opt)
        self.assertEqual(options.warn_level, 1)

        options.If().warn_level.eq(options.opt).warn_level += 1
        self.assertEqual(options.warn_level, 2)

        options.opt = 2

        self.assertEqual(options.warn_level, 3)

        options2 = Options()
        options2.opt1 = RangeOptionType(min_value=1, max_value=100)
        options2.opt2 = RangeOptionType(min_value=1, max_value=100)

        options.warn_level = options2.opt1

        self.assertEqual(options.warn_level.get(), options2.opt1.get())
        options2.opt1 = 4
        self.assertEqual(options.warn_level.get(), options2.opt1.get())

        self.assertRaises(ErrorOptionsCyclicallyDependent, options2.opt2.set,
                          options.opt)

        options.warn_level.set(options.opt)
        self.assertEqual(options.warn_level, 2)

        options.test = 1
        self.assertEqual(options.test.get(), 1)

        options.opt += options.opt

        self.assertEqual(options.opt, 4)