Heat olive oil in a large pot over medium heat. Add onion and garlic, and sauté until softened.
Add carrots and celery, and cook for another 5 minutes.
Stir in diced tomatoes, vegetable broth, beans, oregano, basil, salt, and pepper. Bring to a boil, then reduce heat and simmer for 30 minutes.
While the soup is simmering, prepare the spinach pesto. In a blender, combine spinach, Parmesan cheese, olive oil, garlic, pine nuts, and lemon juice. Blend until smooth.
Serve the soup hot, topped with a dollop of spinach pesto.