Beispiel #1
0
 def test_deconstruct_condition(self):
     constraint = ExclusionConstraint(
         name="exclude_overlapping",
         expressions=[
             ("datespan", RangeOperators.OVERLAPS),
             ("room", RangeOperators.EQUAL),
         ],
         condition=Q(cancelled=False),
     )
     path, args, kwargs = constraint.deconstruct()
     self.assertEqual(
         path, "django.contrib.postgres.constraints.ExclusionConstraint")
     self.assertEqual(args, ())
     self.assertEqual(
         kwargs,
         {
             "name":
             "exclude_overlapping",
             "expressions": [
                 ("datespan", RangeOperators.OVERLAPS),
                 ("room", RangeOperators.EQUAL),
             ],
             "condition":
             Q(cancelled=False),
         },
     )
Beispiel #2
0
 def test_deconstruct_index_type(self):
     constraint = ExclusionConstraint(
         name="exclude_overlapping",
         index_type="SPGIST",
         expressions=[
             ("datespan", RangeOperators.OVERLAPS),
             ("room", RangeOperators.EQUAL),
         ],
     )
     path, args, kwargs = constraint.deconstruct()
     self.assertEqual(
         path, "django.contrib.postgres.constraints.ExclusionConstraint")
     self.assertEqual(args, ())
     self.assertEqual(
         kwargs,
         {
             "name":
             "exclude_overlapping",
             "index_type":
             "SPGIST",
             "expressions": [
                 ("datespan", RangeOperators.OVERLAPS),
                 ("room", RangeOperators.EQUAL),
             ],
         },
     )
Beispiel #3
0
 def test_deconstruct(self):
     constraint = ExclusionConstraint(
         name='exclude_overlapping',
         expressions=[('datespan', RangeOperators.OVERLAPS), ('room', RangeOperators.EQUAL)],
     )
     path, args, kwargs = constraint.deconstruct()
     self.assertEqual(path, 'django.contrib.postgres.constraints.ExclusionConstraint')
     self.assertEqual(args, ())
     self.assertEqual(kwargs, {
         'name': 'exclude_overlapping',
         'expressions': [('datespan', RangeOperators.OVERLAPS), ('room', RangeOperators.EQUAL)],
     })
Beispiel #4
0
 def test_deconstruct_deferrable(self):
     constraint = ExclusionConstraint(
         name='exclude_overlapping',
         expressions=[('datespan', RangeOperators.OVERLAPS)],
         deferrable=Deferrable.DEFERRED,
     )
     path, args, kwargs = constraint.deconstruct()
     self.assertEqual(path, 'django.contrib.postgres.constraints.ExclusionConstraint')
     self.assertEqual(args, ())
     self.assertEqual(kwargs, {
         'name': 'exclude_overlapping',
         'expressions': [('datespan', RangeOperators.OVERLAPS)],
         'deferrable': Deferrable.DEFERRED,
     })
Beispiel #5
0
 def test_deconstruct_opclasses(self):
     constraint = ExclusionConstraint(
         name="exclude_overlapping",
         expressions=[("datespan", RangeOperators.OVERLAPS)],
         opclasses=["range_ops"],
     )
     path, args, kwargs = constraint.deconstruct()
     self.assertEqual(
         path, "django.contrib.postgres.constraints.ExclusionConstraint")
     self.assertEqual(args, ())
     self.assertEqual(
         kwargs,
         {
             "name": "exclude_overlapping",
             "expressions": [("datespan", RangeOperators.OVERLAPS)],
             "opclasses": ["range_ops"],
         },
     )
Beispiel #6
0
 def test_deconstruct_include(self):
     constraint = ExclusionConstraint(
         name="exclude_overlapping",
         expressions=[("datespan", RangeOperators.OVERLAPS)],
         include=["cancelled", "room"],
     )
     path, args, kwargs = constraint.deconstruct()
     self.assertEqual(
         path, "django.contrib.postgres.constraints.ExclusionConstraint")
     self.assertEqual(args, ())
     self.assertEqual(
         kwargs,
         {
             "name": "exclude_overlapping",
             "expressions": [("datespan", RangeOperators.OVERLAPS)],
             "include": ("cancelled", "room"),
         },
     )
Beispiel #7
0
 def test_deconstruct_deferrable(self):
     constraint = ExclusionConstraint(
         name="exclude_overlapping",
         expressions=[("datespan", RangeOperators.OVERLAPS)],
         deferrable=Deferrable.DEFERRED,
     )
     path, args, kwargs = constraint.deconstruct()
     self.assertEqual(
         path, "django.contrib.postgres.constraints.ExclusionConstraint")
     self.assertEqual(args, ())
     self.assertEqual(
         kwargs,
         {
             "name": "exclude_overlapping",
             "expressions": [("datespan", RangeOperators.OVERLAPS)],
             "deferrable": Deferrable.DEFERRED,
         },
     )