summaryrefslogtreecommitdiff
path: root/tests/model_fields/test_binaryfield.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/model_fields/test_binaryfield.py')
-rw-r--r--tests/model_fields/test_binaryfield.py28
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()