def test_unknown_attributes(self): project = ProjectFactory.create(name='Test Project') su = SpatialUnitFactory.create(project=project) party = PartyFactory.create(project=project) content_type = ContentType.objects.get( app_label='party', model='tenurerelationship') schema = Schema.objects.create( content_type=content_type, selectors=(project.organization.id, project.id, )) Attribute.objects.create( schema=schema, name='notes', long_name='Notes', attr_type=AttributeType.objects.get(name='text'), index=0 ) data = { 'spatial_unit': su.id, 'party': party.id, 'tenure_type': 'WR', 'attributes': { 'notes': 'Blah', 'age': 'Blah' } } serializer = serializers.TenureRelationshipSerializer( data=data, context={'project': project} ) assert serializer.is_valid() is False assert 'Unknown attribute "age"' in serializer.errors['attributes']
def test_invalid_custom_tenure_type(self): project = ProjectFactory.create() questionnaire = q_factories.QuestionnaireFactory.create( project=project) question = q_factories.QuestionFactory.create( type='S1', name='tenure_type', questionnaire=questionnaire) q_factories.QuestionOptionFactory.create( question=question, name='FU', label='FU Label') su = SpatialUnitFactory.create(project=project) party = PartyFactory.create(project=project) data = { 'tenure_type': 'FH', 'spatial_unit': su.id, 'party': party.id } serializer = serializers.TenureRelationshipSerializer( data=data, context={'project': project}) assert serializer.is_valid() is False assert ("'FH' is not a valid choice for field 'tenure_type'." in serializer.errors['tenure_type'])
def test_valid_tenure_type(self): project = ProjectFactory.create() su = SpatialUnitFactory.create(project=project) party = PartyFactory.create(project=project) data = {'tenure_type': 'FH', 'spatial_unit': su.id, 'party': party.id} serializer = serializers.TenureRelationshipSerializer( data=data, context={'project': project}) assert serializer.is_valid() is True
def test_invalid_tenure_type(self): project = ProjectFactory.create() su = SpatialUnitFactory.create(project=project) party = PartyFactory.create(project=project) data = {'tenure_type': 'BOO', 'spatial_unit': su.id, 'party': party.id} serializer = serializers.TenureRelationshipSerializer( data=data, context={'project': project}) assert serializer.is_valid() is False assert ("'BOO' is not a valid choice for field 'tenure_type'." in serializer.errors['tenure_type'])
def test_sanitise_string(self): project = ProjectFactory.create(name='Test Project') su = SpatialUnitFactory.create(project=project) party = PartyFactory.create(project=project) content_type = ContentType.objects.get(app_label='party', model='tenurerelationship') schema = Schema.objects.create(content_type=content_type, selectors=( project.organization.id, project.id, )) Attribute.objects.create( schema=schema, name='notes', long_name='Notes', attr_type=AttributeType.objects.get(name='text'), index=0) Attribute.objects.create( schema=schema, name='age', long_name='Homeowner Age', attr_type=AttributeType.objects.get(name='integer'), index=1, required=True, default=0) data = { 'spatial_unit': su.id, 'party': party.id, 'tenure_type': 'WR', 'attributes': { 'notes': '<Blah>', 'age': 2 } } serializer = serializers.TenureRelationshipSerializer( data=data, context={'project': project}) assert serializer.is_valid() is False assert SANITIZE_ERROR in serializer.errors['attributes']