예제 #1
0
    def test_edit_blank02(self):
        self.login()

        sk = SettingKey(
            id='persons-test_edit_blank02',
            description='API key',
            app_label='persons',
            type=SettingKey.INT,
            blank=True,
        )
        setting_key_registry.register(sk)

        sv = SettingValue(key=sk)
        sv.value = 12345
        sv.save()

        self.assertNoFormError(self.client.post(self._build_edit_url(sv)))

        sv = self.refresh(sv)
        self.assertEqual('', sv.value_str)
        self.assertIsNone(sv.value)

        # ---
        self.assertNoFormError(
            self.client.post(self._build_edit_url(sv), data={'value': ''}))

        sv = self.refresh(sv)
        self.assertEqual('', sv.value_str)
        self.assertIsNone(sv.value)
예제 #2
0
    def test_edit_string(self):
        self.login()

        sk = SettingKey(
            id='persons-test_edit_string',
            description='Page title',
            app_label='persons',
            type=SettingKey.STRING,
            hidden=False,
        )
        setting_key_registry.register(sk)

        title = 'May the source be with you'
        sv = SettingValue(key=sk)
        sv.value = title
        sv.save()

        url = self._build_edit_url(sv)
        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'))

        # ---
        title = title.upper()
        self.assertNoFormError(self.client.post(url, data={'value': title}))
        self.assertEqual(title, self.refresh(sv).value)
예제 #3
0
    def test_edit_email(self):
        self.login()

        sk = SettingKey(
            id='persons-test_edit_email',
            description='Campaign Sender',
            app_label='persons',
            type=SettingKey.EMAIL,
        )
        setting_key_registry.register(sk)

        email = '*****@*****.**'
        sv = SettingValue(key=sk)
        sv.value = email
        sv.save()

        url = self._build_edit_url(sv)

        response = self.assertPOST200(url, data={'value': 42})
        self.assertFormError(response, 'form', 'value',
                             _('Enter a valid email address.'))

        email = '*****@*****.**'
        self.assertNoFormError(self.client.post(url, data={'value': email}))
        self.assertEqual(email, self.refresh(sv).value)
예제 #4
0
    def test_edit_app_perm01(self):
        self.login(is_superuser=False, admin_4_apps=['creme_core'])

        sk = SettingKey(
            id='creme_core-test_edit_app_perm01',
            description='Page title',
            app_label='creme_core',
            type=SettingKey.STRING,
            hidden=False,
        )
        setting_key_registry.register(sk)

        sv = SettingValue(key=sk)
        sv.value = 'May the source be with you'
        sv.save()
        self.assertGET200(self._build_edit_url(sv))
예제 #5
0
    def setUpClass(cls):
        super(SettingValueHelpersTestCase, cls).setUpClass()
        cls.SETTING_KEY = SettingKey(
            id='creme_core-test_setting',
            description='',
            app_label='creme_core',
        )
        cls.INTEGER_SETTING_KEY = SettingKey(
            id='creme_core-test_setting_int',
            description='',
            app_label='creme_core',
            type=SettingKey.INT,
        )

        setting_key_registry.register(cls.SETTING_KEY)
        setting_key_registry.register(cls.INTEGER_SETTING_KEY)
예제 #6
0
    def test_edit_hidden02(self):
        "Hidden => not editable (value=False)"
        self.login()

        sk = SettingKey(
            id='persons-test_edit_hidden02',
            description='Display logo ?',
            app_label='persons',
            type=SettingKey.BOOL,
            hidden=True,
        )
        setting_key_registry.register(sk)

        sv = SettingValue(key=sk)
        sv.value = False
        sv.save()
        self.assertGET409(self._build_edit_url(sv))
예제 #7
0
    def test_edit_bool(self):
        self.login()

        sk = SettingKey(
            id='persons-test_edit_bool',
            description='Display logo ?',
            app_label='persons',
            type=SettingKey.BOOL,
        )
        setting_key_registry.register(sk)

        sv = SettingValue(key=sk)
        sv.value = True
        sv.save()

        # False -> empty POST
        self.assertNoFormError(
            self.client.post(self._build_edit_url(sv), data={}))
        self.assertFalse(self.refresh(sv).value)
예제 #8
0
    def test_edit_hour(self):
        self.login()

        sk = SettingKey(
            id='persons-test_edit_hour',
            description='Reminder hour',
            app_label='persons',
            type=SettingKey.HOUR,
        )
        setting_key_registry.register(sk)

        hour = 11
        sv = SettingValue(key=sk)
        sv.value = hour
        sv.save()

        url = self._build_edit_url(sv)
        hour += 1
        self.assertNoFormError(self.client.post(url, data={'value': hour}))
        self.assertEqual(hour, self.refresh(sv).value)

        response = self.assertPOST200(url, data={'value': 24})
        self.assertFormError(
            response,
            'form',
            'value',
            _('Ensure this value is less than or equal to %(limit_value)s.') %
            {
                'limit_value': 23,
            },
        )

        response = self.assertPOST200(url, data={'value': -1})
        self.assertFormError(
            response,
            'form',
            'value',
            _('Ensure this value is greater than or equal to %(limit_value)s.')
            % {
                'limit_value': 0,
            },
        )
예제 #9
0
    def test_edit_int(self):
        self.login()

        sk = SettingKey(
            id='persons-test_edit_int',
            description='Page size',
            app_label='persons',
            type=SettingKey.INT,
        )
        setting_key_registry.register(sk)

        size = 156
        sv = SettingValue(key=sk)
        sv.value = size
        sv.save()

        size += 15
        self.assertNoFormError(
            self.client.post(self._build_edit_url(sv), data={'value': size}))
        self.assertEqual(size, self.refresh(sv).value)
예제 #10
0
    def test_edit_blank01(self):
        self.login()

        sk = SettingKey(
            id='persons-test_edit_blank01',
            description='API key',
            app_label='persons',
            type=SettingKey.STRING,
            blank=True,
        )
        setting_key_registry.register(sk)

        # sv = SettingValue.objects.create(key=sk, value='123-456-abc')
        sv = SettingValue(key=sk)
        sv.value = '123-456-abc'
        sv.save()

        self.assertNoFormError(
            self.client.post(self._build_edit_url(sv), data={'value': ''}))

        sv = self.refresh(sv)
        self.assertEqual('', sv.value_str)
        self.assertIsNone(sv.value)
예제 #11
0
 def _register_key(self, skey):
     setting_key_registry.register(skey)
     self._registered_skey.append(skey)