async def test_start_other_dir(tmpdir, loop, test_client, caplog): StartProject(path=str(tmpdir.join('the-path')), name='foobar', database=DatabaseChoice.NONE) assert {p.basename for p in tmpdir.listdir()} == {'the-path'} assert {p.basename for p in tmpdir.join('the-path').listdir()} == { 'app', 'Makefile', 'requirements.txt', 'README.md', 'activate.settings.sh', 'setup.cfg', 'static', 'tests', } assert """\ adev.main INFO: Starting new aiohttp project "foobar" at "/<tmpdir>/the-path" adev.main INFO: config: template_engine: jinja session: secure database: none example: message-board adev.main INFO: project created, 16 files generated\n""" == caplog.log.replace(str(tmpdir), '/<tmpdir>') config = Config(app_path='the-path/app/', root_path=str(tmpdir)) app = config.app_factory(loop=loop) modify_main_app(app, config) assert isinstance(app, aiohttp.web.Application) cli = await test_client(app) r = await cli.get('/') assert r.status == 200 text = await r.text() assert "Success! you've setup a basic aiohttp app." in text
async def test_db_creation(tmpdir, test_client, loop): StartProject( path=str(tmpdir), name='foobar postgres test', template_engine=TemplateChoice.JINJA, session=SessionChoices.NONE, database=DatabaseChoice.PG_SA, example=ExampleChoice.MESSAGE_BOARD, ) assert 'app' in {p.basename for p in tmpdir.listdir()} style_guide = flake8.get_style_guide() report = style_guide.check_files([str(tmpdir)]) assert report.total_errors == 0 db_password = os.getenv('APP_DB_PASSWORD', '') env = { 'APP_DB_PASSWORD': db_password, 'PATH': os.getenv('PATH', ''), } p = subprocess.run(['make', 'reset-database'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=str(tmpdir), env=env, universal_newlines=True) assert p.returncode == 0, p.stdout assert 'creating database "foobar"...' assert 'creating tables from model definition...' os.environ['APP_DB_PASSWORD'] = db_password config = Config(app_path='app/main.py', root_path=str(tmpdir)) app = config.app_factory(loop=loop) modify_main_app(app, config) cli = await test_client(app) r = await cli.get('/') assert r.status == 200 text = await r.text() assert '<title>foobar postgres test</title>' in text
async def test_run_app_test_client(loop, tmpworkdir, test_client): mktree(tmpworkdir, SIMPLE_APP) config = Config(app_path='app.py') app = config.app_factory(loop=loop) modify_main_app(app, config) assert isinstance(app, aiohttp.web.Application) cli = await test_client(app) r = await cli.get('/') assert r.status == 200 text = await r.text() assert text == 'hello world'
async def test_all_options(tmpdir, test_client, loop, template_engine, session, database, example): StartProject( path=str(tmpdir), name='foobar', template_engine=template_engine, session=session, database=database, example=example, ) assert 'app' in {p.basename for p in tmpdir.listdir()} style_guide = flake8.get_style_guide() report = style_guide.check_files([str(tmpdir)]) assert report.total_errors == 0 if database != 'none': return config = Config(app_path='app/main.py', root_path=str(tmpdir)) app = config.app_factory(loop=loop) modify_main_app(app, config) cli = await test_client(app) r = await cli.get('/') assert r.status == 200 text = await r.text() assert '<title>foobar</title>' in text