コード例 #1
0
    def test_with_combined_expression(self):
        """Testing serialize_to_python with CombinedExpression"""
        if not can_test_combined_expressions:
            raise SkipTest('Not supported on this version of Django')

        self.assertEqual(
            deserialize_from_signature({
                '_deconstructed': True,
                'args': (
                    {
                        '_deconstructed': True,
                        'args': ('a',),
                        'kwargs': {},
                        'type': 'django.db.models.expressions.F',
                    },
                    '+',
                    {
                        '_deconstructed': True,
                        'args': (1,),
                        'kwargs': {},
                        'type': 'django.db.models.expressions.Value',
                    },
                ),
                'kwargs': {},
                'type': 'django.db.models.expressions.CombinedExpression',
            }),
            F('a') + 1)
コード例 #2
0
 def test_with_q(self):
     """Testing deserialize_from_signature with Q"""
     self.assertEqual(
         deserialize_from_signature({
             '_deconstructed': True,
             'args': [
                 {
                     '_deconstructed': True,
                     'args': [
                         ['field1', True],
                     ],
                     'kwargs': {
                         '_negated': True,
                     },
                     'type': 'django.db.models.Q',
                 },
                 {
                     '_deconstructed': True,
                     'args': [
                         ['field2', 'test'],
                         ['field3__gte', 1],
                     ],
                     'kwargs': {
                         '_connector': 'OR',
                     },
                     'type': 'django.db.models.Q'
                 },
             ],
             'kwargs': {},
             'type': 'django.db.models.Q',
         }),
         ~Q(field1=True) & (Q(field2='test') | Q(field3__gte=1)))
コード例 #3
0
 def test_with_q_empty(self):
     """Testing deserialize_from_signature with empty Q"""
     self.assertEqual(
         deserialize_from_signature({
             '_deconstructed': True,
             'args': [],
             'kwargs': {},
             'type': 'django.db.models.Q',
         }),
         Q())
コード例 #4
0
    def test_with_deferrable(self):
        """Testing deserialize_from_signature with Deferrable enum value"""
        if Deferrable is None:
            raise SkipTest('Not supported on this version of Django')

        self.assertEqual(
            deserialize_from_signature({
                '_enum': True,
                'type': 'django.db.models.Deferrable',
                'value': 'DEFERRED',
            }),
            Deferrable.DEFERRED)
コード例 #5
0
 def test_with_q_kwargs(self):
     """Testing deserialize_from_signature with Q and fields in kwargs"""
     self.assertEqual(
         deserialize_from_signature({
             '_deconstructed': True,
             'args': [],
             'kwargs': {
                 'field1': True,
                 '_negated': True,
             },
             'type': 'django.db.models.Q',
         }),
         ~Q(field1=True))
コード例 #6
0
 def test_with_deconstructable_obj(self):
     """Testing deserialize_from_signature with deconstructable object"""
     self.assertEqual(
         deserialize_from_signature({
             '_deconstructed': True,
             'args': (1, 2, 3),
             'kwargs': {
                 'kwarg1': 'value1',
                 'kwarg2': 'value2',
             },
             'type': ('django_evolution.tests.test_serialization.'
                      'MyDeconstructableObject'),
         }),
         MyDeconstructableObject(1, 2, 3,
                                 kwarg1='value1',
                                 kwarg2='value2'))
コード例 #7
0
    def test_with_ordered_dict(self):
        """Testing deserialize_from_signature with dict"""
        d = OrderedDict()
        d['a'] = 'value1'
        d['c'] = [1, 2, 3]
        d['b'] = None

        result = deserialize_from_signature(d)
        self.assertIsInstance(result, dict)
        self.assertEqual(
            result,
            {
                'a': 'value1',
                'c': [1, 2, 3],
                'b': None,
            })
コード例 #8
0
 def test_with_dict(self):
     """Testing deserialize_from_signature with dict"""
     self.assertEqual(
         deserialize_from_signature({
             'a': 'value1',
             'c': [1, 2, 3],
             'b': {
                 'nested': None,
             },
         }),
         {
             'a': 'value1',
             'c': [1, 2, 3],
             'b': {
                 'nested': None,
             },
         })
コード例 #9
0
 def test_with_float(self):
     """Testing deserialize_from_signature with float"""
     self.assertEqual(deserialize_from_signature(1.23), 1.23)
コード例 #10
0
 def test_with_bool(self):
     """Testing deserialize_from_signature with bool"""
     self.assertIs(deserialize_from_signature(True), True)
コード例 #11
0
 def test_with_unicode_str(self):
     """Testing deserialize_from_signature with unicode string"""
     self.assertEqual(deserialize_from_signature('test 🧸'), 'test 🧸')
コード例 #12
0
 def test_with_type(self):
     """Testing deserialize_from_signature with type"""
     with self.assertRaises(NotImplementedError):
         deserialize_from_signature(CharField)
コード例 #13
0
 def test_with_tuple(self):
     """Testing deserialize_from_signature with tuple"""
     self.assertEqual(deserialize_from_signature((1, True, 'foo')),
                      (1, True, 'foo'))
コード例 #14
0
 def test_with_set(self):
     """Testing deserialize_from_signature with set"""
     self.assertEqual(deserialize_from_signature({1, 3, 2}),
                      {1, 2, 3})
コード例 #15
0
 def test_with_int(self):
     """Testing deserialize_from_signature with int"""
     self.assertEqual(deserialize_from_signature(123), 123)
コード例 #16
0
 def test_with_list(self):
     """Testing deserialize_from_signature with list"""
     self.assertEqual(deserialize_from_signature([1, 2, 'foo']),
                      [1, 2, 'foo'])
コード例 #17
0
    def test_with_long(self):
        """Testing deserialize_from_signature with long"""
        if not six.PY2:
            raise SkipTest('Applicable on Python 2 only.')

        self.assertEqual(deserialize_from_signature(long(123)), long(123))
コード例 #18
0
 def test_with_placeholder(self):
     """Testing deserialize_from_signature with BasePlaceholder subclass"""
     with self.assertRaises(NotImplementedError):
         deserialize_from_signature(NullFieldInitialCallback())
コード例 #19
0
 def test_with_none(self):
     """Testing deserialize_from_signature with None"""
     self.assertIsNone(deserialize_from_signature(None))