|
@@ -12,8 +12,8 @@ from django.utils import six
|
|
|
from django.utils import unittest
|
|
|
|
|
|
from .models import (Foo, Bar, Whiz, BigD, BigS, Image, BigInt, Post,
|
|
|
- NullBooleanModel, BooleanModel, Document, RenamedField, VerboseNameField,
|
|
|
- FksToBooleans)
|
|
|
+ NullBooleanModel, BooleanModel, DataModel, Document, RenamedField,
|
|
|
+ VerboseNameField, FksToBooleans)
|
|
|
|
|
|
from .imagefield import (ImageFieldTests, ImageFieldTwoDimensionsTests,
|
|
|
TwoImageFieldTests, ImageFieldNoDimensionsTests,
|
|
@@ -424,3 +424,25 @@ class FileFieldTests(unittest.TestCase):
|
|
|
field = d._meta.get_field('myfile')
|
|
|
field.save_form_data(d, 'else.txt')
|
|
|
self.assertEqual(d.myfile, 'else.txt')
|
|
|
+
|
|
|
+
|
|
|
+class BinaryFieldTests(test.TestCase):
|
|
|
+ binary_data = b'\x00\x46\xFE'
|
|
|
+
|
|
|
+ def test_set_and_retrieve(self):
|
|
|
+ data_set = (self.binary_data, six.memoryview(self.binary_data))
|
|
|
+ for bdata in data_set:
|
|
|
+ dm = DataModel(data=bdata)
|
|
|
+ dm.save()
|
|
|
+ dm = DataModel.objects.get(pk=dm.pk)
|
|
|
+ self.assertEqual(bytes(dm.data), bytes(bdata))
|
|
|
+ # Resave (=update)
|
|
|
+ dm.save()
|
|
|
+ dm = DataModel.objects.get(pk=dm.pk)
|
|
|
+ self.assertEqual(bytes(dm.data), bytes(bdata))
|
|
|
+ # Test default value
|
|
|
+ self.assertEqual(bytes(dm.short_data), b'\x08')
|
|
|
+
|
|
|
+ def test_max_length(self):
|
|
|
+ dm = DataModel(short_data=self.binary_data*4)
|
|
|
+ self.assertRaises(ValidationError, dm.full_clean)
|