def test_source_serialises_fields(self): licence_name = 'Open Government Licence' licence_url = 'http://www.nationalarchives.gov' attribution_text = 'Contains public sector information' attribution_url = 'http://www.gov.uk' attribution = Attribution( licence_name=licence_name, licence_url=licence_url, attribution_text=attribution_text, attribution_url=attribution_url ) url = "http://example.com/provider" version = 2 source = Source(url, version, attribution) self.assertEquals(source._asdict(), { 'self': 'http://mollyproject.org/common/source', 'attribution': attribution._asdict(), 'url': url, 'version': version })
def from_dict(cls, data): poi = cls() poi.slug = data.get('slug') poi.names = LocalisedNames(LocalisedName(**name) for name in data.get('names', [])) poi.descriptions = LocalisedNames(LocalisedName(**name) for name in data.get('descriptions', [])) poi.identifiers = Identifiers(Identifier(**name) for name in data.get('identifiers', [])) poi.address = data.get('address') poi.locality = data.get('locality') poi.telephone_number = data.get('telephone_number') poi.opening_hours = data.get('opening_hours', []) poi.categories = data.get('categories', []) poi.amenities = data.get('amenities', []) poi.geography = asShape(data['geography']) if data.get('geography') else None poi.location = asShape(data['location']) if data.get('location') else None poi.sources = [Source.from_dict(source) for source in data.get('sources', [])] return poi