Heat olive oil in a large pot over medium heat. Add onion, carrots, and celery. Cook until softened, about 5 minutes.
Add garlic and zucchini, cook for another 2 minutes.
Stir in diced tomatoes, vegetable broth, cannellini beans, oregano, and basil. Bring to a boil, then reduce heat and simmer for 20 minutes.
While the soup is simmering, make the spinach pesto. In a food processor, combine spinach, basil leaves, pine nuts, nutritional yeast, olive oil, and lemon juice. Blend until smooth.
Season the soup with salt and pepper to taste. Serve hot with a dollop of spinach pesto on top.