def test_as_form_field(self): instance = NestedBoundField(FakeSerializer, {}, {}, prefix='none') nested_bound_field = instance.as_form_field() self.assertEqual(nested_bound_field._field, instance._field) self.assertEqual(nested_bound_field.value, {}) self.assertEqual(nested_bound_field.errors, instance.errors) self.assertEqual(nested_bound_field._prefix, instance._prefix)
def test_init_with_empty_string(self): instance = NestedBoundField(FakeField, {"key": "value"}, {}, prefix='none') self.assertEqual(instance._field, instance._field) self.assertEqual(instance.value, instance.value) self.assertEqual(instance.errors, instance.errors) self.assertEqual(instance._prefix, instance._prefix)
def __getitem__(self, key): field = self.fields[key] value = self.data.get(key) error = self.errors.get(key) if hasattr(self, '_errors') else None if isinstance(field, Serializer): return NestedBoundField(field, value, error) return BoundField(field, value, error)
def test_init(self): instance = NestedBoundField(FakeField, "value", {"key": "error"}, prefix='none') self.assertEqual(instance._field, instance._field) self.assertEqual(instance.value, "value") self.assertEqual(instance.errors, instance.errors) self.assertEqual(instance._prefix, instance._prefix)
def test_init_with_none(self): instance = NestedBoundField(FakeField, None, 'some error', prefix='none') self.assertEqual(instance._field, instance._field) self.assertEqual(instance.value, {}) self.assertEqual(instance.errors, instance.errors) self.assertEqual(instance._prefix, instance._prefix)
def test_getitem_returns_bound_field(self): instance = NestedBoundField(FakeSerializer, {}, {}, prefix='none') nested_field = instance['pk'] self.assertIsInstance(nested_field, BoundField)
def test_iter(self): instance = NestedBoundField(FakeSerializer, {}, {"pk": "error"}, prefix='none') checked_data = set([field.field_name for field in instance]) self.assertEqual(checked_data, {FakeField.field_name})