def test_unique(self):
num_constraints_before = len(self.get_constraints(RoomBooking))
# Add the index
index_name = 'roombooking_test_idx'
index = PartialIndex(fields=['user', 'room'], name=index_name, unique=True, where='deleted_at IS NULL')
with self.schema_editor() as editor:
editor.add_index(RoomBooking, index)
constraints = self.get_constraints(RoomBooking)
self.assertEqual(len(constraints), num_constraints_before + 1)
self.assertEqual(constraints[index_name]['columns'], ['user_id', 'room_id'])
self.assertEqual(constraints[index_name]['primary_key'], False)
self.assertEqual(constraints[index_name]['check'], False)
self.assertEqual(constraints[index_name]['index'], True)
self.assertEqual(constraints[index_name]['unique'], True)
# Drop the index
with self.schema_editor() as editor:
editor.remove_index(RoomBooking, index)
constraints = self.get_constraints(RoomBooking)
self.assertEqual(len(constraints), num_constraints_before)
self.assertNotIn(index_name, constraints)
评论列表
文章目录