Heat oil in a large frying pan and cook the onion until tender, about 5 minutes.
Add the garlic and chipotle chili and cook for about 1 minute more.
Add tomatoes and cook for 5 to 7 minutes until it thickens a bit.
Add the beans and warm through.
Salt to taste.
When penne is cooked, drain it and return it to its pan.
Add the sauce, cheese, and cilantro to the pasta and stir.