def test_valid_serialize(self): """Test serialize/deserialize with valid data.""" serializer = self.serializer_class() endpoint_name = 'label_endpoint' api.register(endpoint_name, self.label_endpoint, responses.LabelResponse) user = self.create_user() endpoint = api.get_endpoint_by_name(endpoint_name) data = (user, endpoint) output_data = serializer.deserialize(serializer.serialize(*data)) self.assertEqual(data, output_data)
def test_invalid_serialize(self): """Test serialize/deserialize with tempered data.""" serializer = self.serializer_class() endpoint_name = 'label_endpoint' api.register(endpoint_name, self.label_endpoint, responses.LabelResponse) user = self.create_user() endpoint = api.get_endpoint_by_name(endpoint_name) data = (user, endpoint) serialized_code = serializer.serialize(*data) tempered_code = serialized_code + 'X' with self.assertRaises(serializers.SerializerException): serializer.deserialize(tempered_code)
def deserialize(self, st): """Deserialize url.""" s_index = st.find(self.SEPARATOR) if s_index == -1: raise SerializerException('Invalid endpoint string') username = st[:s_index] endpoint_name = st[s_index + 1:] User = get_user_model() try: user = User.objects.get(username=username) except User.DoesNotExist: raise SerializerException('User does not exist') endpoint = get_endpoint_by_name(endpoint_name) if not endpoint: raise SerializerException('Endpoint does not exist') return user, endpoint