File: hidden_and_editable.py

package info (click to toggle)
python-gpyconf 0.2-1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd, stretch
  • size: 416 kB
  • ctags: 590
  • sloc: python: 1,980; makefile: 87; sh: 4
file content (38 lines) | stat: -rw-r--r-- 1,138 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# Tests if hidden and editable are handled correctly.
import unittest
import gpyconf
import gpyconftest

class HiddenAndEditableTestConf(gpyconftest.Configuration):
    editable = gpyconf.fields.IntegerField(default=42)
    not_editable = gpyconf.fields.IntegerField(default=42, editable=False)

    hidden = gpyconf.fields.IntegerField(default=42, hidden=True)

    logging_level = 'info'


class HiddenAndEditableTestCase(unittest.TestCase):
    def setUp(self):
        self.conf = HiddenAndEditableTestConf()

    def runTest(self):
        self.conf.editable = 43
        # should change
        try:
            self.conf.not_editable = 43
        except AttributeError:
            pass
        else:
            raise RuntimeError("Value set but field is not editable")

        self.assertEqual(self.conf.fields.not_editable.default, self.conf.not_editable)
        # value mustn't have changed

        self.conf.run_frontend()

        self.assertEqual(self.conf.fields.hidden.default, self.conf.hidden)
        # value shouln't have changed (frontend shouldn't show this field)

if __name__ == '__main__':
    unittest.main()