mirror of
https://github.com/django/django.git
synced 2025-07-24 05:36:15 +00:00
Add a BinaryField model field
Thanks Michael Jung, Charl Botha and Florian Apolloner for review and help on the patch.
This commit is contained in:
parent
0f306cad84
commit
8ee1eddb7e
10 changed files with 85 additions and 2 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue