diff options
Diffstat (limited to 'tests/model_fields/test_binaryfield.py')
| -rw-r--r-- | tests/model_fields/test_binaryfield.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/model_fields/test_binaryfield.py b/tests/model_fields/test_binaryfield.py new file mode 100644 index 0000000000..641dc17287 --- /dev/null +++ b/tests/model_fields/test_binaryfield.py @@ -0,0 +1,28 @@ +from django.core.exceptions import ValidationError +from django.test import TestCase +from django.utils import six + +from .models import DataModel + + +class BinaryFieldTests(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) + with self.assertRaises(ValidationError): + dm.full_clean() |
