def test_editing_existing_message_is_valid(self): district = Location( **dict(name='Kampala', type='district', parent=None)).save() disaster_type = DisasterType( **dict(name="Fire", description="Fire")).save() disaster_attributes = dict(name=disaster_type, locations=[district], description="Big Flood", date="2014-12-01 00:00:00", status="Assessment") disaster = Disaster(**disaster_attributes).save() message = RapidProMessage(**self.serialized_data).save() data = self.serialized_data.copy() data['disaster'] = disaster.id serializer = RapidProMessageSerializer(message, data=data) self.assertTrue(serializer.is_valid()) new_message = serializer.save() self.assertTrue(message.id, new_message.id) self.assertEqual(disaster, new_message.disaster)
def test_should_deserialize_rapid_pro_message_object(self): serializer = RapidProMessageSerializer(data=self.serialized_data) self.assertTrue(serializer.is_valid()) saved_message = serializer.save() self.assertTrue(isinstance(saved_message, RapidProMessage)) for attribute, value in self.message.items(): self.assertEqual(value, getattr(saved_message, attribute))
def test_should_serialize_rapid_pro_message_object(self): rapid_pro_message = RapidProMessage(**self.message).save() serialized_object = RapidProMessageSerializer(rapid_pro_message) self.serialized_data['time'] = self.date_time.replace(tzinfo=pytz.utc) serialized_data_with_source = dict( self.serialized_data.items() + { 'id': str(rapid_pro_message.id), 'source': self.mobile_user.name, 'disaster': None, 'location': 'Kampala >> Bukoto', 'profile_id': str(self.mobile_user.id), 'auto_associated': False }.items()) self.assertEqual(serialized_data_with_source, serialized_object.data)