aboutsummaryrefslogtreecommitdiffstats
path: root/spec
AgeCommit message (Collapse)Author
2017-04-29Rename `InvalidDatabaseAdapter` to `UnsupportedDatabaseAdapter`Teddy Wing
Tried this out with MySQL, and got this error since I haven't integrated it yet. It struck me that "Invalid" doesn't make any sense. Really it's something that is possible to do but that our gem doesn't support, so we should be clearer about that fact.
2017-04-29Add `DBShell::Client::MySQL`Teddy Wing
For now only includes a `.build_command()` method. Inspired again by: https://github.com/django/django/blob/66150f7cf61bc09547fa98586790df596eff6d77/django/db/backends/mysql/client.py although in our case we haven't handled some of the more exotic options. Eventually we'll probably have to do that.
2017-04-29Rename `Sqlite3` class to `SQLite3`Teddy Wing
To match the 'sqlite3' gem's and the SQLite project's capitalisation convention.
2017-04-29Move `DBShell::InvalidDatabaseAdapter` to the `Client` moduleTeddy Wing
Now that we have a `Client` module (46b019abd520870ab159b60c03c45675f64dd88a), it makes so much more sense to put this error class inside it.
2017-04-29Rename database client classesTeddy Wing
Update our class names to reflect the new file structure introduced in b700c1bef89a67a64f1040fb6bb03c0320eefe91. Use the module DBShell module Client end end syntax intead of `DBShell::Client` so that we don't have to define the `Client` module in a separate file and require it. Otherwise we'd get an error: lib/dbshell/client/sqlite3.rb:1:in `<top (required)>': uninitialized constant DBShell::Client (NameError)
2017-04-29Update `require` paths in database client filesTeddy Wing
Change the paths in the code to conform to the new file layout introduced in b700c1bef89a67a64f1040fb6bb03c0320eefe91.
2017-04-29Rename database client files to put them in a `Client` moduleTeddy Wing
Will be modifying the class names in the next commit. Here we change the file names & locations of the database client files. The format changes thusly: <adapter>_client.rb -> client/<adapter>.rb This organisation feels cleaner to me. Wasn't liking the previous structure.
2017-04-29Add `DBShell::DatabaseClient`Teddy Wing
A more generic interface to specific database adapter clients. This class will act as a frontend to the others. Calling its `.runshell()` will call the appropriate `.runshell()` for the adapter provided in `connection_params`. This way, we have a single entry point to start a database shell from the Rake `dbshell` task.
2017-04-29Add `DBShell::Sqlite3Client`Teddy Wing
Much simpler `.build_command` than the Postgres version. Only building arguments now. Want to try out executing the subprocess command. Inspired of course by: https://github.com/django/django/blob/66150f7cf61bc09547fa98586790df596eff6d77/django/db/backends/sqlite3/client.py
2017-04-29postgres_client_spec.rb: Use integer port instead of stringTeddy Wing
Match the expected type with the input.
2017-04-29postgres_client_spec.rb: Add missing `it` blockTeddy Wing
Forgot to add an `it` block for my test, which resulted in it failing with a non-obvious error message.
2017-04-29Add `DBShell::PostgresClient` stubTeddy Wing
Make an empty container to pass the basic tests.
2017-04-29Add preliminary test for `DBShell::PostgresClient`Teddy Wing
Thinking up an interface for generating command line arguments for the `psql` command. Based on Django's dbshell: https://github.com/django/django/blob/66150f7cf61bc09547fa98586790df596eff6d77/tests/dbshell/test_postgresql_psycopg2.py