TST: sql skip tests at class level if database is not available
Added a `SetUpClass` to skip the full class when no connection can be made to the database, and made some of the other methods class methods, to be able to use them in `SetUpClass`

Eg if you are testing locally and don't have one of the databases available, then it will test the connection and skip each individual test, which can take some time.
