mirror of
https://github.com/django/django.git
synced 2024-11-18 07:26:04 +00:00
d549b88050
Thanks Josh Smeaton, Mariusz Felisiak, Sergey Fedoseev, Simon Charettes, Adam Chainz/Johnson and Tim Graham for comments and reviews and Jamie Cockburn for initial patch.
40 lines
1.5 KiB
Python
40 lines
1.5 KiB
Python
from django.db.models.functions import Lag, Lead, NthValue, Ntile
|
|
from django.test import SimpleTestCase
|
|
|
|
|
|
class ValidationTests(SimpleTestCase):
|
|
def test_nth_negative_nth_value(self):
|
|
msg = 'NthValue requires a positive integer as for nth'
|
|
with self.assertRaisesMessage(ValueError, msg):
|
|
NthValue(expression='salary', nth=-1)
|
|
|
|
def test_nth_null_expression(self):
|
|
msg = 'NthValue requires a non-null source expression'
|
|
with self.assertRaisesMessage(ValueError, msg):
|
|
NthValue(expression=None)
|
|
|
|
def test_lag_negative_offset(self):
|
|
msg = 'Lag requires a positive integer for the offset'
|
|
with self.assertRaisesMessage(ValueError, msg):
|
|
Lag(expression='salary', offset=-1)
|
|
|
|
def test_lead_negative_offset(self):
|
|
msg = 'Lead requires a positive integer for the offset'
|
|
with self.assertRaisesMessage(ValueError, msg):
|
|
Lead(expression='salary', offset=-1)
|
|
|
|
def test_null_source_lead(self):
|
|
msg = 'Lead requires a non-null source expression'
|
|
with self.assertRaisesMessage(ValueError, msg):
|
|
Lead(expression=None)
|
|
|
|
def test_null_source_lag(self):
|
|
msg = 'Lag requires a non-null source expression'
|
|
with self.assertRaisesMessage(ValueError, msg):
|
|
Lag(expression=None)
|
|
|
|
def test_negative_num_buckets_ntile(self):
|
|
msg = 'num_buckets must be greater than 0'
|
|
with self.assertRaisesMessage(ValueError, msg):
|
|
Ntile(num_buckets=-1)
|