Skip to content

Commit

Permalink
[generator] test cases for generator.generate
Browse files Browse the repository at this point in the history
Ref #230
  • Loading branch information
iblislin committed Jun 7, 2016
1 parent 509bed9 commit 8cdbb7b
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 9 deletions.
14 changes: 5 additions & 9 deletions couchapp/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -299,19 +299,15 @@ def find_template_dir(tmpl_name='default', tmpl_type='', raise_error=False):


def generate(path, kind, name, **opts):
func_list = ('view', 'list', 'show', 'filter', 'function', 'vendor',
'update', 'spatial')
if kind not in func_list:
kinds = ('view', 'list', 'show', 'filter', 'function', 'vendor', 'update',
'spatial')
if kind not in kinds:
raise AppError("Can't generate '{0}' in your couchapp. "
'generator is unknown.'.format(kind))

if name is None:
raise AppError("Can't generate '{0}' function, "
"name is missing".format(kind))

if kind == 'vendor':
return generate_vendor(path, name, opts.get('template'))
generate_function(path, kind, name, opts.get('template'))
return generate_vendor(path, name, opts.get('template', 'default'))
generate_function(path, kind, name, opts.get('template', 'default'))


def save_id(app_path, name):
Expand Down
29 changes: 29 additions & 0 deletions tests/test_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from couchapp.errors import AppError
from couchapp.generator import copy_helper, find_template_dir
from couchapp.generator import init_basic, init_template, save_id
from couchapp.generator import generate

from mock import patch
from nose.tools import raises, with_setup
Expand Down Expand Up @@ -200,3 +201,31 @@ def _find_dir(*args, **kwargs):
assert setup_dirs.called
assert save_id.called
assert localdoc.document.called


@patch('couchapp.generator.generate_function')
@patch('couchapp.generator.generate_vendor')
def test_generate_functions(gen_vendor, gen_func):
generate('/mock/app', 'view', 'mock_view', template='default')

assert gen_func.called
assert not gen_vendor.called


@raises(AppError)
@patch('couchapp.generator.generate_function')
@patch('couchapp.generator.generate_vendor')
def test_generate_invalid_functions(gen_vendor, gen_func):
generate('/mock/app', 'strange', 'mock_func', template='default')

assert not gen_func.called
assert not gen_vendor.called


@patch('couchapp.generator.generate_function')
@patch('couchapp.generator.generate_vendor')
def test_generate_dispatch_to_vendor(gen_vendor, gen_func):
generate('/mock/app', 'vendor', 'myvendor', template='default')

assert not gen_func.called
assert gen_vendor.called

0 comments on commit 8cdbb7b

Please sign in to comment.