Bring a large pot of water to a rolling boil over high heat. Cook pasta in boiling water until the pasta has cooked through but is still firm to the bite, about 11 minutes. Drain.
Heat basil and olive oils in a large frypan over medium-high heat. Cook garlic in oil until soft. Add tomatoes, reduce heat to medium, and simmer for 10 minutes. Stir in cheeses. When cheese begins to melt, mix in cooked penne pasta. Season with fresh basil.
Use 2 tablespoons olive oil if basil oil is unavailable.