In a frying pan over a medium heat, warm the oil then add the onion and garlic. Cook and stir for a few minutes until the onions are soft then add the mushrooms and continue cooking for 6 to 8 minutes. Add the tomato puree or pesto and mix well then add the tinned tomatoes and allow to simmer gently for about 10 minutes.
Meanwhile, bring a saucepan of water to the boil and add the pasta. Cook for 10 to 15 minutes until al dente or according to the instructions on the packet. Drain.
As the pasta is coming to the end of its cooking time, add the tuna to the tomato mixture and stir gently, taking care not to break up the tuna completely.
When ready to serve, spoon the pasta onto warmed plates then spoon the tuna and tomato mixture on top. Sprinkle with cheese to taste then serve.