Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unit tests for "datasette publish" #348

Closed
simonw opened this issue Jul 26, 2018 · 1 comment
Closed

Unit tests for "datasette publish" #348

simonw opened this issue Jul 26, 2018 · 1 comment

Comments

@simonw
Copy link
Owner

simonw commented Jul 26, 2018

The datasette publish family of commands all work by shelling out to heroku/now/docker

from subprocess import call, check_output

So in tests I should be able to mock those calls:

@mock.patch('subprocess.call')
simonw added a commit that referenced this issue Jul 26, 2018
This change introduces a new plugin hook, publish_subcommand, which can be
used to implement new subcommands for the "datasette publish" command family.

I've used this new hook to refactor out the "publish now" and "publish heroku"
implementations into separate modules. I've also added unit tests for these
two publishers, mocking the subprocess.call and subprocess.check_output
functions.

As part of this, I introduced a mechanism for loading default plugins. These
are defined in the new "default_plugins" list inside datasette/app.py

Closes #217 (Plugin support for datasette publish)
Closes #348 (Unit tests for "datasette publish")
Refs #14, #59, #102, #103, #146, #236, #347
simonw pushed a commit that referenced this issue Jul 26, 2018
… heroku/now (#349)

This change introduces a new plugin hook, publish_subcommand, which can be
used to implement new subcommands for the "datasette publish" command family.

I've used this new hook to refactor out the "publish now" and "publish heroku"
implementations into separate modules. I've also added unit tests for these
two publishers, mocking the subprocess.call and subprocess.check_output
functions.

As part of this, I introduced a mechanism for loading default plugins. These
are defined in the new "default_plugins" list inside datasette/app.py

Closes #217 (Plugin support for datasette publish)
Closes #348 (Unit tests for "datasette publish")
Refs #14, #59, #102, #103, #146, #236, #347
@simonw
Copy link
Owner Author

simonw commented Jul 26, 2018

Oops, forgot to commit those unit tests.

@simonw simonw reopened this Jul 26, 2018
@simonw simonw closed this as completed in 3b68314 Jul 26, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant