12345678910111213141516171819202122232425262728293031 |
- import click
- import zipfile,urllib,os
- from click.testing import CliRunner
- from flaskbb.cli import main as cli_main
- def test_new_plugin(tmpdir,application,monkeypatch):
- runner=CliRunner()
- zipfilename=str(tmpdir.join('cookiecutter.zip'))
- monkeypatch.setattr(cli_main,'create_app',lambda s: application)
- urllib.urlretrieve('https://github.com/sh4nks/cookiecutter-flaskbb-plugin/archive/master.zip',zipfilename)
- with zipfile.ZipFile(zipfilename) as zf:
- zf.extractall(str(tmpdir))
- cookiecutterpath=tmpdir.join('cookiecutter-flaskbb-plugin-master')
- input='\n'.join([
- 'Test Name',
- 'someone@nowhere.com',
- 'Testing Plugin',
- '',
- '',
- 'Straightforward Test Plugin',
- 'www.example.com',
- '1.0.0'])
- result=runner.invoke(cli_main.flaskbb,['plugins','new','testplugin','--template',str(cookiecutterpath)],input=input)
- assert result.exit_code == 0
- plugin_dir = os.join(application.extensions['plugin_manager'].plugin_folder, 'testing_plugin')
- assert os.path.exists(plugin_dir)
- assert os.path.isdir(plugin_dir)
- assert __import__('flaskbb.plugins.testing_plugin').__plugin__=='TestingPlugin'
|