mirror of
https://github.com/Hopiu/django-cachalot.git
synced 2026-05-11 22:23:12 +00:00
Adds tests for IP addresses.
This commit is contained in:
parent
d959f3e42f
commit
7e3e1dabb9
3 changed files with 53 additions and 3 deletions
|
|
@ -26,6 +26,7 @@ class Migration(migrations.Migration):
|
|||
('owner', models.ForeignKey(blank=True, to=settings.AUTH_USER_MODEL, null=True)),
|
||||
('permission', models.ForeignKey(blank=True, to='auth.Permission', null=True)),
|
||||
('bin', models.BinaryField(null=True, blank=True)),
|
||||
('ip', models.GenericIPAddressField(null=True, blank=True)),
|
||||
],
|
||||
options={
|
||||
'ordering': ('name',),
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ from django import VERSION as django_version
|
|||
from django.conf import settings
|
||||
from django.db.models import (
|
||||
Model, CharField, ForeignKey, BooleanField, DateField, DateTimeField,
|
||||
ManyToManyField, BinaryField, IntegerField)
|
||||
ManyToManyField, BinaryField, IntegerField, GenericIPAddressField)
|
||||
|
||||
|
||||
class Test(Model):
|
||||
|
|
@ -17,6 +17,7 @@ class Test(Model):
|
|||
datetime = DateTimeField(null=True, blank=True)
|
||||
permission = ForeignKey('auth.Permission', null=True, blank=True)
|
||||
bin = BinaryField(null=True, blank=True)
|
||||
ip = GenericIPAddressField(null=True, blank=True)
|
||||
|
||||
class Meta(object):
|
||||
ordering = ('name',)
|
||||
|
|
|
|||
|
|
@ -47,6 +47,8 @@ class ReadTestCase(TransactionTestCase):
|
|||
name='test2', owner=self.admin, public=True,
|
||||
date='1944-06-06', datetime='1944-06-06T06:35:00')
|
||||
|
||||
self.is_sqlite = connection.vendor == 'sqlite'
|
||||
|
||||
def test_empty(self):
|
||||
with self.assertNumQueries(0):
|
||||
data1 = list(Test.objects.none())
|
||||
|
|
@ -595,8 +597,7 @@ class ReadTestCase(TransactionTestCase):
|
|||
self.assertListEqual(data2, [self.t2, self.t1])
|
||||
|
||||
def test_table_inheritance(self):
|
||||
is_sqlite = connection.vendor == 'sqlite'
|
||||
with self.assertNumQueries(3 if is_sqlite else 2):
|
||||
with self.assertNumQueries(3 if self.is_sqlite else 2):
|
||||
t_child = TestChild.objects.create(name='test_child')
|
||||
|
||||
with self.assertNumQueries(1):
|
||||
|
|
@ -709,3 +710,50 @@ class ReadTestCase(TransactionTestCase):
|
|||
list(Test.objects.filter(bin=b'def'))
|
||||
with self.assertNumQueries(0 if is_mysql else 1):
|
||||
list(Test.objects.filter(bin=b'def'))
|
||||
|
||||
def test_ipv4_address(self):
|
||||
with self.assertNumQueries(1):
|
||||
list(Test.objects.values('ip'))
|
||||
with self.assertNumQueries(0):
|
||||
list(Test.objects.values('ip'))
|
||||
with self.assertNumQueries(2 if self.is_sqlite else 1):
|
||||
Test.objects.create(name='test3', ip='127.0.0.1')
|
||||
with self.assertNumQueries(2 if self.is_sqlite else 1):
|
||||
Test.objects.create(name='test4', ip='192.168.0.1')
|
||||
with self.assertNumQueries(1):
|
||||
data1 = list(Test.objects.values_list('ip', flat=True).filter(
|
||||
ip__isnull=False).order_by('ip'))
|
||||
with self.assertNumQueries(0):
|
||||
data2 = list(Test.objects.values_list('ip', flat=True).filter(
|
||||
ip__isnull=False).order_by('ip'))
|
||||
self.assertListEqual(data2, data1)
|
||||
self.assertListEqual(data2, ['127.0.0.1', '192.168.0.1'])
|
||||
|
||||
with self.assertNumQueries(1):
|
||||
list(Test.objects.filter(ip='127.0.0.1'))
|
||||
with self.assertNumQueries(0):
|
||||
list(Test.objects.filter(ip='127.0.0.1'))
|
||||
|
||||
def test_ipv6_address(self):
|
||||
with self.assertNumQueries(1):
|
||||
list(Test.objects.values('ip'))
|
||||
with self.assertNumQueries(0):
|
||||
list(Test.objects.values('ip'))
|
||||
with self.assertNumQueries(2 if self.is_sqlite else 1):
|
||||
Test.objects.create(name='test3', ip='2001:db8:a0b:12f0::1/64')
|
||||
with self.assertNumQueries(2 if self.is_sqlite else 1):
|
||||
Test.objects.create(name='test4', ip='2001:db8:0:85a3::ac1f:8001')
|
||||
with self.assertNumQueries(1):
|
||||
data1 = list(Test.objects.values_list('ip', flat=True).filter(
|
||||
ip__isnull=False).order_by('ip'))
|
||||
with self.assertNumQueries(0):
|
||||
data2 = list(Test.objects.values_list('ip', flat=True).filter(
|
||||
ip__isnull=False).order_by('ip'))
|
||||
self.assertListEqual(data2, data1)
|
||||
self.assertListEqual(data2, [
|
||||
'2001:db8:0:85a3::ac1f:8001', '2001:db8:a0b:12f0::1/64'])
|
||||
|
||||
with self.assertNumQueries(1):
|
||||
list(Test.objects.filter(ip='2001:db8:0:85a3::ac1f:8001'))
|
||||
with self.assertNumQueries(0):
|
||||
list(Test.objects.filter(ip='2001:db8:0:85a3::ac1f:8001'))
|
||||
|
|
|
|||
Loading…
Reference in a new issue