コード例 #1
0
    def test_as_html(self):
        user = self.login()

        sk1 = UserSettingKey('creme_core-test_model_bool',
                             description=u'Page displayed',
                             app_label='creme_core',
                             type=SettingKey.BOOL, hidden=False,
                            )
        sk2 = UserSettingKey('creme_core-test_model_str',
                            description=u'Page size',
                            app_label='creme_core',
                            type=SettingKey.STRING, hidden=False,
                           )
        self._register_key(sk1, sk2)

        with self.assertRaises(KeyError):
            user.settings.as_html(sk1)

        str_value = 'Foobar'
        with user.settings as settings:
            settings[sk1] = True
            settings[sk2] = str_value

        as_html = user.settings.as_html
        self.assertEqual(bool_as_html(True), as_html(sk1))
        self.assertEqual(str_value,          as_html(sk2))
コード例 #2
0
ファイル: test_user.py プロジェクト: mrjmad/creme_crm
    def test_edit_user_setting_value05(self):
        "Blank + INT."
        user = self.user
        sk = UserSettingKey(
            'creme_config-test_edit_user_setting_value05',
            description='API key',
            app_label='creme_core',
            type=SettingKey.INT,
            blank=True,
        )
        self._register_key(sk)

        usettings = user.settings
        with usettings:
            usettings[sk] = 123

        url = self._build_edit_user_svalue_url(sk)
        response = self.assertGET200(url)

        with self.assertNoException():
            value_f = response.context['form'].fields['value']

        self.assertEqual(123, value_f.initial)

        # ---
        response = self.client.post(url)
        self.assertNoFormError(response)
        self.assertIsNone(self.refresh(user).settings.get(sk))
コード例 #3
0
ファイル: test_user.py プロジェクト: mrjmad/creme_crm
    def test_edit_user_setting_value01(self):
        user = self.user
        sk = UserSettingKey(
            'creme_config-test_edit_user_setting_value01',
            description='Page displayed',
            app_label='creme_core',
            type=SettingKey.BOOL,
            hidden=False,
        )
        self.assertIsNone(user.settings.get(sk))

        url = self._build_edit_user_svalue_url(sk)
        self.assertGET404(url)

        # ---
        self._register_key(sk)
        response = self.assertGET200(url)
        self.assertTemplateUsed(
            response, 'creme_core/generics/blockform/edit-popup.html')

        context = response.context
        self.assertEqual(
            _('Edit «{key}»').format(key=sk.description), context.get('title'))
        # self.assertEqual(_('Save the modifications'), context.get('submit_label'))  TODO

        # ---
        response = self.client.post(url, data={'value': 'on'})
        self.assertNoFormError(response)

        self.assertIs(True, self.refresh(user).settings.get(sk))
コード例 #4
0
    def test_cast_bool(self):
        user = self.login()

        sk = UserSettingKey('creme_core-test_model_bool',
                            description=u'Page displayed',
                            app_label='creme_core',
                            type=SettingKey.BOOL, hidden=False,
                           )
        self._register_key(sk)

        displayed = 1

        with user.settings as settings:
            settings[sk] = displayed

        self.assertIs(True, user.settings.get(key=sk))

        # -----
        displayed = 0

        with user.settings as settings:
            settings[sk] = displayed

        self.assertIs(False, user.settings.get(key=sk))

        # -----
        user = self.refresh(user)

        with self.assertNoException():
            d = json.loads(user.json_settings)

        self.assertIsInstance(d, dict)
        self.assertIsInstance(d.get(sk.id), bool)
コード例 #5
0
    def test_get(self):
        user = self.login()

        sk = UserSettingKey('creme_core-test_model_string',
                            description=u'Page title',
                            app_label='creme_core',
                            type=SettingKey.STRING, hidden=False,
                           )
        self._register_key(sk)

        settings = user.settings

        with self.assertNoException():
            value = settings.get(sk)

        self.assertIsNone(value)

        with self.assertNoException():
            value = settings.get(sk, '')

        self.assertEqual('', value)

        title = 'May the source be with you'
        with self.assertRaises(settings.ReadOnlyError):
            settings[sk] = title

        with settings:
            settings[sk] = title

        self.assertEqual(title, settings.get(sk, ''))
コード例 #6
0
    def test_cast_int(self):
        user = self.login()

        sk = UserSettingKey('creme_core-test_model_int',
                            description=u'Page size',
                            app_label='creme_core',
                            type=SettingKey.INT, hidden=False,
                           )
        self._register_key(sk)

        size = 143

        with user.settings as settings:
            settings[sk] = str(size)  # <== __str()__

        self.assertEqual(size, user.settings.get(key=sk))

        user = self.refresh(user)
        self.assertEqual(size, user.settings.get(key=sk))

        with self.assertNoException():
            d = json.loads(user.json_settings)

        self.assertIsInstance(d, dict)
        self.assertIsInstance(d.get(sk.id), int)
コード例 #7
0
    def test_serialise(self):
        "JSON in DB + int"
        user = self.login()

        sk = UserSettingKey(
            'creme_core-test_model_int',
            description='Page size',
            app_label='creme_core',
            type=SettingKey.INT,
            hidden=False,
        )
        self._register_key(sk)

        size = 142

        with user.settings as settings:
            settings[sk] = size

        user = self.refresh(
            user
        )  # Oblige UserSettingValue to be stored in DB (we clean the cache)

        with self.assertNoException():
            value = user.settings.get(key=sk)

        self.assertEqual(size, value)
コード例 #8
0
    def test_basic(self):
        user = self.create_user()

        sk = UserSettingKey(
            'creme_core-test_model_string',
            description='Page title',
            app_label='creme_core',
            type=SettingKey.STRING,
            hidden=False,
        )
        self._register_key(sk)

        title = 'May the source be with you'
        settings = user.settings

        with self.assertRaises(KeyError):
            settings[sk]

        with self.assertRaises(settings.ReadOnlyError):
            settings[sk] = title

        with settings:
            settings[sk] = title

        with self.assertNoException():
            value = settings[sk]

        self.assertEqual(title, value)

        with self.assertNoException():
            value = user.settings[sk]

        self.assertEqual(title, value)
コード例 #9
0
ファイル: test_user.py プロジェクト: mrjmad/creme_crm-2.1
    def test_edit_user_setting_value02(self):
        "hidden=True => error"
        sk = UserSettingKey('creme_config-test_edit_user_setting_value02',
                            description='Page displayed',
                            app_label='creme_core',
                            type=SettingKey.BOOL, hidden=True,
                           )

        self._register_key(sk)
        self.assertGET409(self._build_edit_user_svalue_url(sk))
コード例 #10
0
ファイル: test_user.py プロジェクト: mrjmad/creme_crm-2.1
    def test_edit_user_setting_value03(self):
        "Not blank + STRING"
        sk = UserSettingKey('creme_config-test_edit_user_setting_value03',
                            description='API key',
                            app_label='creme_core',
                            type=SettingKey.STRING,
                           )
        self.assertFalse(sk.blank)
        self._register_key(sk)

        response = self.client.post(self._build_edit_user_svalue_url(sk), data={'value': ''})
        self.assertFormError(response, 'form', 'value', _('This field is required.'))
コード例 #11
0
    def _aux_test_pop(self):
        user = self.login()

        sk = UserSettingKey('creme_core-test_model_int',
                            description=u'Page size',
                            app_label='creme_core',
                            type=SettingKey.INT, hidden=False,
                           )
        self._register_key(sk)

        settings = user.settings
        with settings:
            settings[sk] = 142

        return user, settings, sk
コード例 #12
0
    def test_bool(self):
        user = self.login()

        sk = UserSettingKey('creme_core-test_model_bool',
                            description=u'Page displayed',
                            app_label='creme_core',
                            type=SettingKey.BOOL, hidden=False,
                           )
        self._register_key(sk)

        def test_value(displayed):
            with user.settings as settings:
                settings[sk] = displayed

            with self.assertNoException():
                value = self.refresh(user).settings.get(key=sk)

            self.assertIs(displayed, value)

        test_value(True)
        test_value(False)
コード例 #13
0
ファイル: test_user.py プロジェクト: mrjmad/creme_crm-2.1
    def test_edit_user_setting_value04(self):
        "Blank + STRING"
        user = self.user
        sk = UserSettingKey('creme_config-test_edit_user_setting_value04',
                            description='API key',
                            app_label='creme_core',
                            type=SettingKey.STRING,
                            blank=True,
                           )
        self.assertIsNone(user.settings.get(sk))

        url = self._build_edit_user_svalue_url(sk)
        self.assertGET404(url)

        self._register_key(sk)
        self.assertIsNone(user.settings.get(sk))
        self.assertGET200(url)

        response = self.client.post(url, data={'value': ''})
        self.assertNoFormError(response)
        self.assertEqual('', self.refresh(user).settings.get(sk))

        self.assertGET200(url)