tests.py 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. class InetTestModel(models.Model):
  2. '''
  3. >>> cursor = connection.cursor()
  4. >>> InetTestModel(inet='10.0.0.1').save()
  5. >>> InetTestModel(inet=IP('10.0.0.1')).save()
  6. >>> InetTestModel(inet='').save()
  7. Traceback (most recent call last):
  8. ...
  9. IntegrityError: null value in column "inet" violates not-null constraint
  10. <BLANKLINE>
  11. >>> cursor.execute('ROLLBACK')
  12. >>> InetTestModel(inet='az').save()
  13. Traceback (most recent call last):
  14. ...
  15. ValueError: invalid literal for int() with base 10: 'az'
  16. >>> InetTestModel(inet=None).save()
  17. Traceback (most recent call last):
  18. ...
  19. IntegrityError: null value in column "inet" violates not-null constraint
  20. <BLANKLINE>
  21. >>> cursor.execute('ROLLBACK')
  22. >>> InetTestModel().save()
  23. Traceback (most recent call last):
  24. ...
  25. IntegrityError: null value in column "inet" violates not-null constraint
  26. <BLANKLINE>
  27. >>> cursor.execute('ROLLBACK')
  28. >>> InetTestModel.objects.filter(inet='10.0.0.1').query.as_sql()
  29. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE "inet"."inet" = %s ', (u'10.0.0.1',))
  30. >>> InetTestModel.objects.filter(inet__exact='10.0.0.1').query.as_sql()
  31. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE "inet"."inet" = %s ', (u'10.0.0.1',))
  32. >>> InetTestModel.objects.filter(inet__iexact='10.0.0.1').query.as_sql()
  33. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE "inet"."inet" = %s ', (u'10.0.0.1',))
  34. >>> InetTestModel.objects.filter(inet__net_contains='10.0.0.1').query.as_sql()
  35. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE "inet"."inet" >> %s ', (u'10.0.0.1',))
  36. >>> InetTestModel.objects.filter(inet__in=['10.0.0.1', '10.0.0.2']).query.as_sql()
  37. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE "inet"."inet" IN (%s, %s)', (u'10.0.0.1', u'10.0.0.2'))
  38. >>> InetTestModel.objects.filter(inet__gt='10.0.0.1').query.as_sql()
  39. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE "inet"."inet" > %s ', (u'10.0.0.1',))
  40. >>> InetTestModel.objects.filter(inet__gte='10.0.0.1').query.as_sql()
  41. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE "inet"."inet" >= %s ', (u'10.0.0.1',))
  42. >>> InetTestModel.objects.filter(inet__lt='10.0.0.1').query.as_sql()
  43. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE "inet"."inet" < %s ', (u'10.0.0.1',))
  44. >>> InetTestModel.objects.filter(inet__lte='10.0.0.1').query.as_sql()
  45. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE "inet"."inet" <= %s ', (u'10.0.0.1',))
  46. >>> InetTestModel.objects.filter(inet__startswith='10.').query.as_sql()
  47. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE HOST("inet"."inet") ILIKE %s ', (u'10.%',))
  48. >>> InetTestModel.objects.filter(inet__istartswith='10.').query.as_sql()
  49. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE HOST("inet"."inet") ILIKE %s ', (u'10.%',))
  50. >>> InetTestModel.objects.filter(inet__endswith='.1').query.as_sql()
  51. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE HOST("inet"."inet") ILIKE %s ', (u'%.1',))
  52. >>> InetTestModel.objects.filter(inet__iendswith='.1').query.as_sql()
  53. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE HOST("inet"."inet") ILIKE %s ', (u'%.1',))
  54. >>> InetTestModel.objects.filter(inet__range=('10.0.0.1', '10.0.0.10')).query.as_sql()
  55. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE "inet"."inet" BETWEEN %s and %s', (u'10.0.0.1', u'10.0.0.10'))
  56. >>> InetTestModel.objects.filter(inet__year=1).query.as_sql()
  57. Traceback (most recent call last):
  58. ...
  59. ValueError: Invalid lookup type "year"
  60. >>> InetTestModel.objects.filter(inet__month=1).query.as_sql()
  61. Traceback (most recent call last):
  62. ...
  63. ValueError: Invalid lookup type "month"
  64. >>> InetTestModel.objects.filter(inet__day=1).query.as_sql()
  65. Traceback (most recent call last):
  66. ...
  67. ValueError: Invalid lookup type "day"
  68. >>> InetTestModel.objects.filter(inet__isnull=True).query.as_sql()
  69. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE "inet"."inet" IS NULL', ())
  70. >>> InetTestModel.objects.filter(inet__isnull=False).query.as_sql()
  71. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE "inet"."inet" IS NOT NULL', ())
  72. >>> InetTestModel.objects.filter(inet__search='10').query.as_sql()
  73. Traceback (most recent call last):
  74. ...
  75. ValueError: Invalid lookup type "search"
  76. >>> InetTestModel.objects.filter(inet__regex=u'10').query.as_sql()
  77. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE HOST("inet"."inet") ~* %s ', (u'10',))
  78. >>> InetTestModel.objects.filter(inet__iregex=u'10').query.as_sql()
  79. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE HOST("inet"."inet") ~* %s ', (u'10',))
  80. >>> InetTestModel.objects.filter(inet__net_contains_or_equals='10.0.0.1').query.as_sql()
  81. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE "inet"."inet" >>= %s ', (u'10.0.0.1',))
  82. >>> InetTestModel.objects.filter(inet__net_contained='10.0.0.1').query.as_sql()
  83. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE "inet"."inet" << %s ', (u'10.0.0.1',))
  84. >>> InetTestModel.objects.filter(inet__net_contained_or_equal='10.0.0.1').query.as_sql()
  85. ('SELECT "inet"."id", "inet"."inet" FROM "inet" WHERE "inet"."inet" <<= %s ', (u'10.0.0.1',))
  86. '''
  87. inet = InetAddressField()
  88. objects = NetManger()
  89. class Meta:
  90. db_table = 'inet'
  91. class NullInetTestModel(models.Model):
  92. '''
  93. >>> NullInetTestModel(inet='10.0.0.1').save()
  94. >>> NullInetTestModel(inet=IP('10.0.0.1')).save()
  95. >>> NullInetTestModel(inet='').save()
  96. >>> NullInetTestModel(inet=None).save()
  97. >>> NullInetTestModel().save()
  98. '''
  99. inet = InetAddressField(null=True)
  100. objects = NetManger()
  101. class Meta:
  102. db_table = 'nullinet'
  103. class CidrTestModel(models.Model):
  104. '''
  105. >>> CidrTestModel.objects.filter(cidr='10.0.0.1').query.as_sql()
  106. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE "cidr"."cidr" = %s ', (u'10.0.0.1',))
  107. >>> CidrTestModel.objects.filter(cidr__exact='10.0.0.1').query.as_sql()
  108. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE "cidr"."cidr" = %s ', (u'10.0.0.1',))
  109. >>> CidrTestModel.objects.filter(cidr__iexact='10.0.0.1').query.as_sql()
  110. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE "cidr"."cidr" = %s ', (u'10.0.0.1',))
  111. >>> CidrTestModel.objects.filter(cidr__net_contains='10.0.0.1').query.as_sql()
  112. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE "cidr"."cidr" >> %s ', (u'10.0.0.1',))
  113. >>> CidrTestModel.objects.filter(cidr__in=['10.0.0.1', '10.0.0.2']).query.as_sql()
  114. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE "cidr"."cidr" IN (%s, %s)', (u'10.0.0.1', u'10.0.0.2'))
  115. >>> CidrTestModel.objects.filter(cidr__gt='10.0.0.1').query.as_sql()
  116. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE "cidr"."cidr" > %s ', (u'10.0.0.1',))
  117. >>> CidrTestModel.objects.filter(cidr__gte='10.0.0.1').query.as_sql()
  118. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE "cidr"."cidr" >= %s ', (u'10.0.0.1',))
  119. >>> CidrTestModel.objects.filter(cidr__lt='10.0.0.1').query.as_sql()
  120. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE "cidr"."cidr" < %s ', (u'10.0.0.1',))
  121. >>> CidrTestModel.objects.filter(cidr__lte='10.0.0.1').query.as_sql()
  122. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE "cidr"."cidr" <= %s ', (u'10.0.0.1',))
  123. >>> CidrTestModel.objects.filter(cidr__startswith='10.').query.as_sql()
  124. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE TEXT("cidr"."cidr") ILIKE %s ', (u'10.%',))
  125. >>> CidrTestModel.objects.filter(cidr__istartswith='10.').query.as_sql()
  126. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE TEXT("cidr"."cidr") ILIKE %s ', (u'10.%',))
  127. >>> CidrTestModel.objects.filter(cidr__endswith='.1').query.as_sql()
  128. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE TEXT("cidr"."cidr") ILIKE %s ', (u'%.1',))
  129. >>> CidrTestModel.objects.filter(cidr__iendswith='.1').query.as_sql()
  130. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE TEXT("cidr"."cidr") ILIKE %s ', (u'%.1',))
  131. >>> CidrTestModel.objects.filter(cidr__range=('10.0.0.1', '10.0.0.10')).query.as_sql()
  132. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE "cidr"."cidr" BETWEEN %s and %s', (u'10.0.0.1', u'10.0.0.10'))
  133. >>> CidrTestModel.objects.filter(cidr__year=1).query.as_sql()
  134. Traceback (most recent call last):
  135. ...
  136. ValueError: Invalid lookup type "year"
  137. >>> CidrTestModel.objects.filter(cidr__month=1).query.as_sql()
  138. Traceback (most recent call last):
  139. ...
  140. ValueError: Invalid lookup type "month"
  141. >>> CidrTestModel.objects.filter(cidr__day=1).query.as_sql()
  142. Traceback (most recent call last):
  143. ...
  144. ValueError: Invalid lookup type "day"
  145. >>> CidrTestModel.objects.filter(cidr__isnull=True).query.as_sql()
  146. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE "cidr"."cidr" IS NULL', ())
  147. >>> CidrTestModel.objects.filter(cidr__isnull=False).query.as_sql()
  148. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE "cidr"."cidr" IS NOT NULL', ())
  149. >>> CidrTestModel.objects.filter(cidr__search='10').query.as_sql()
  150. Traceback (most recent call last):
  151. ...
  152. ValueError: Invalid lookup type "search"
  153. >>> CidrTestModel.objects.filter(cidr__regex=u'10').query.as_sql()
  154. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE TEXT("cidr"."cidr") ~* %s ', (u'10',))
  155. >>> CidrTestModel.objects.filter(cidr__iregex=u'10').query.as_sql()
  156. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE TEXT("cidr"."cidr") ~* %s ', (u'10',))
  157. >>> CidrTestModel.objects.filter(cidr__net_contains_or_equals='10.0.0.1').query.as_sql()
  158. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE "cidr"."cidr" >>= %s ', (u'10.0.0.1',))
  159. >>> CidrTestModel.objects.filter(cidr__net_contained='10.0.0.1').query.as_sql()
  160. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE "cidr"."cidr" << %s ', (u'10.0.0.1',))
  161. >>> CidrTestModel.objects.filter(cidr__net_contained_or_equal='10.0.0.1').query.as_sql()
  162. ('SELECT "cidr"."id", "cidr"."cidr" FROM "cidr" WHERE "cidr"."cidr" <<= %s ', (u'10.0.0.1',))
  163. '''
  164. cidr = CidrAddressField()
  165. objects = NetManger()
  166. class Meta:
  167. db_table = 'cidr'
  168. class MACTestModel(models.Model):
  169. mac = MACAddressField(null=True)
  170. objects = NetManger()
  171. class Meta:
  172. db_table = 'mac'