Esempio n. 1
0
class VariablesControllerTest(unittest.TestCase):

    def setUp(self):
        self.tcf = TestCaseFile()
        self._add_var('${foo}', 'foo')
        self._add_var('@{bar}', ['b', 'a', 'r'])
        self.ctrl = VariableTableController(TestCaseFileController(self.tcf),
                                            self.tcf.variable_table)

    def test_creation(self):
        assert_equal(self.ctrl[0].name, '${foo}')
        assert_equal(self.ctrl[1].name, '@{bar}')

    def test_move_up(self):
        self.ctrl.move_up(1)
        assert_true(self.ctrl.dirty)
        assert_equal(self.ctrl[0].name, '@{bar}')
        assert_equal(self.ctrl[1].name, '${foo}')

    def test_move_down(self):
        self.ctrl.move_down(0)
        assert_true(self.ctrl.dirty)
        assert_equal(self.ctrl[0].name, '@{bar}')
        assert_equal(self.ctrl[1].name, '${foo}')

    def test_moving_first_item_up_does_nothing(self):
        self.ctrl.move_up(0)
        assert_false(self.ctrl.dirty)
        assert_equal(self.ctrl[0].name, '${foo}')

    def test_moving_last_item_down_does_nothing(self):
        self.ctrl.move_down(1)
        assert_false(self.ctrl.dirty)
        assert_equal(self.ctrl[1].name, '@{bar}')

    def _add_var(self, name, value):
        self.tcf.variable_table.add(name, value)

    def test_adding_scalar(self):
        self.ctrl.add_variable('${blaa}', 'value')
        assert_true(self.ctrl.dirty)
        self._assert_var_in_model(2, '${blaa}', ['value'])

    def test_editing(self):
        self.ctrl[0].set_value('${blaa}', 'quux')
        self._assert_var_in_ctrl(0, '${blaa}', ['quux'])
        self.ctrl[1].set_value('@{listvar}', ['a', 'b', 'c'])
        self._assert_var_in_ctrl(1, '@{listvar}', ['a', 'b', 'c'])
        assert_true(self.ctrl.dirty)

    def _assert_var_in_ctrl(self, index, name, value):
        assert_equal(self.ctrl[index].name, name)
        assert_equal(self.ctrl[index].value, value)

    def _assert_var_in_model(self, index, name, value):
        assert_equal(self.tcf.variable_table.variables[index].name, name)
        assert_equal(self.tcf.variable_table.variables[index].value, value)