Exemple #1
0
    def test_can_serialize_preference(self):
        manager = registry.manager()
        pref = manager.get_db_pref(section='user', name='max_users')

        serializer = serializers.GlobalPreferenceSerializer(pref)
        data = serializer.data

        self.assertEqual(data['default'],
                         pref.preference.api_repr(pref.preference.default))
        self.assertEqual(data['value'], pref.preference.api_repr(pref.value))
        self.assertEqual(data['identifier'], pref.preference.identifier())
        self.assertEqual(data['section'], pref.section)
        self.assertEqual(data['name'], pref.name)
        self.assertEqual(data['verbose_name'], pref.preference.verbose_name)
        self.assertEqual(data['help_text'], pref.preference.help_text)
        self.assertEqual(data['field']['class'], 'IntegerField')
        self.assertEqual(data['field']['input_type'], 'number')
        self.assertEqual(data['field']['widget']['class'], 'NumberInput')

        pref = manager.get_db_pref(section='exam', name='duration')
        serializer = serializers.GlobalPreferenceSerializer(pref)
        data = serializer.data
        self.assertEqual(data['value'], '03:00:00')

        pref = manager.get_db_pref(section='company', name='RegistrationDate')
        serializer = serializers.GlobalPreferenceSerializer(pref)
        data = serializer.data
        self.assertEqual(data['value'], '1998-09-04')

        pref = manager.get_db_pref(section='child', name='BirthDateTime')
        serializer = serializers.GlobalPreferenceSerializer(pref)
        data = serializer.data
        self.assertEqual(data['value'], '1992-05-04T03:04:10.000150+05:30')
Exemple #2
0
    def test_serializer_also_uses_custom_clean_method(self):
        manager = registry.manager()
        pref = manager.get_db_pref(section='user', name='max_users')

        # will fail because of preference cleaning
        data = {'value': 1001}
        serializer = serializers.GlobalPreferenceSerializer(pref, data=data)

        is_valid = serializer.is_valid()
        self.assertFalse(is_valid)
        self.assertIn('value', serializer.errors)
Exemple #3
0
 def get(self, request, *args, **kwargs):
     manager = global_preferences_registry.manager()
     manager.all()
     all_preferences = manager.model.objects.all().order_by(
         "section", "name")
     api_preferences = [
         p for p in all_preferences
         if getattr(p.preference, "show_in_api", False)
     ]
     data = serializers.GlobalPreferenceSerializer(api_preferences,
                                                   many=True).data
     return Response(data, status=200)
Exemple #4
0
    def test_can_change_preference_value_using_serializer(self):
        manager = registry.manager()
        pref = manager.get_db_pref(section='user', name='max_users')
        data = {'value': 666}
        serializer = serializers.GlobalPreferenceSerializer(pref, data=data)

        is_valid = serializer.is_valid()
        self.assertTrue(is_valid)

        serializer.save()
        pref = manager.get_db_pref(section='user', name='max_users')

        self.assertEqual(pref.value, data['value'])
Exemple #5
0
    def test_can_list_preferences(self):
        manager = registry.manager()
        url = reverse('api:global-list')
        self.client.login(username='******', password="******")
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)

        payload = json.loads(response.content.decode('utf-8'))

        self.assertEqual(len(payload), len(registry.preferences()))

        for e in payload:
            pref = manager.get_db_pref(section=e['section'], name=e['name'])
            serializer = serializers.GlobalPreferenceSerializer(pref)
            self.assertEqual(pref.preference.identifier(), e['identifier'])
Exemple #6
0
    def test_can_serialize_preference(self):
        manager = registry.manager()
        pref = manager.get_db_pref(section='user', name='max_users')

        serializer = serializers.GlobalPreferenceSerializer(pref)
        data = serializer.data

        self.assertEqual(data['default'],
                         pref.preference.api_repr(pref.preference.default))
        self.assertEqual(data['value'], pref.preference.api_repr(pref.value))
        self.assertEqual(data['identifier'], pref.preference.identifier())
        self.assertEqual(data['section'], pref.section)
        self.assertEqual(data['name'], pref.name)
        self.assertEqual(data['verbose_name'], pref.preference.verbose_name)
        self.assertEqual(data['help_text'], pref.preference.help_text)
        self.assertEqual(data['field']['class'], 'IntegerField')
        self.assertEqual(data['field']['input_type'], 'number')
        self.assertEqual(data['field']['widget']['class'], 'NumberInput')