Skip to content

Commit

Permalink
Remove the LIST_SCAFFOLDS constant.
Browse files Browse the repository at this point in the history
  • Loading branch information
mblayman committed Mar 6, 2016
1 parent ba39a75 commit 13367d3
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 53 deletions.
4 changes: 1 addition & 3 deletions handroll/commands/scaffold.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,7 @@ def register(self, subparsers):

def run(self, args):
if args.scaffold:
# scaffolder.make(args.scaffold, args.site)
finish()
else:
scaffolder.list_scaffolds()
# TODO: remove LIST_SCAFFOLDS constant
# TODO: Make `make` simpler by putting switching logic in command.
# scaffolder.make(args.scaffold, args.site)
27 changes: 9 additions & 18 deletions handroll/scaffolder.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,19 @@
BUILTIN_SCAFFOLDS = {
'default': _('A complete site to get you going'),
}
LIST_SCAFFOLDS = 1
SCAFFOLDS_PATH = os.path.join(os.path.dirname(__file__), 'scaffolds')


def make(scaffold, site):
"""Use the given scaffold to make a site or list what is available."""
if scaffold == LIST_SCAFFOLDS:
list_scaffolds()
else:
make_scaffold(scaffold, site)
"""Make a site from the scaffold."""
if scaffold not in BUILTIN_SCAFFOLDS:
raise AbortError(_('There is no {scaffold} scaffold.'.format(
scaffold=scaffold)))
if os.path.exists(site):
raise AbortError(_('{site} already exists.'.format(site=site)))
os.makedirs(site)
scaffold_path = os.path.join(SCAFFOLDS_PATH, scaffold)
shutil.copytree(scaffold_path, os.path.join(site, 'source'))


def list_scaffolds():
Expand All @@ -37,15 +40,3 @@ def display_scaffold(scaffold, label):
def get_label(scaffold):
"""Get the label for the scaffold."""
return BUILTIN_SCAFFOLDS[scaffold]


def make_scaffold(scaffold, site):
"""Make a site from the scaffold."""
if scaffold not in BUILTIN_SCAFFOLDS:
raise AbortError(_('There is no {scaffold} scaffold.'.format(
scaffold=scaffold)))
if os.path.exists(site):
raise AbortError(_('{site} already exists.'.format(site=site)))
os.makedirs(site)
scaffold_path = os.path.join(SCAFFOLDS_PATH, scaffold)
shutil.copytree(scaffold_path, os.path.join(site, 'source'))
23 changes: 1 addition & 22 deletions handroll/tests/test_entry.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

import mock

from handroll import entry, logger, scaffolder
from handroll import entry, logger
from handroll.tests import TestCase


Expand Down Expand Up @@ -98,27 +98,6 @@ def test_force_argument(self):
args = entry.parse(argv)
self.assertTrue(args.force)

def test_scaffold_argument(self):
# FIXME: I promise I'm coming right back to this.
return
args = entry.parse(self.arguments)
self.assertIsNone(args.scaffold)

argv = list(self.arguments)
argv.append('-s')
args = entry.parse(argv)
self.assertEqual(scaffolder.LIST_SCAFFOLDS, args.scaffold)

argv = list(self.arguments)
argv.append('--scaffold')
args = entry.parse(argv)
self.assertEqual(scaffolder.LIST_SCAFFOLDS, args.scaffold)

argv = list(self.arguments)
argv.extend(['--scaffold', 'default'])
args = entry.parse(argv)
self.assertEqual('default', args.scaffold)


class TestMain(TestCase):

Expand Down
15 changes: 5 additions & 10 deletions handroll/tests/test_scaffolder.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,38 +25,33 @@ def test_list_format(self):

@mock.patch('handroll.scaffolder.display_scaffold')
def test_displays_scaffolds(self, display_scaffold):
scaffolder.make(scaffolder.LIST_SCAFFOLDS, 'dontcare')
scaffolder.list_scaffolds()
self.assertTrue(display_scaffold.called)

@mock.patch('handroll.scaffolder.make_scaffold')
def test_makes_scaffold(self, make_scaffold):
scaffolder.make('default', 'site')
make_scaffold.assert_called_once_with('default', 'site')

def test_unknown_scaffold_aborts(self):
try:
scaffolder.make_scaffold('fake', 'dontcare')
scaffolder.make('fake', 'dontcare')
self.fail()
except AbortError:
pass

def test_existing_site_directory_aborts(self):
site = tempfile.mkdtemp()
try:
scaffolder.make_scaffold('default', site)
scaffolder.make('default', site)
self.fail()
except AbortError:
pass

def test_makes_site_root(self):
parent = tempfile.mkdtemp()
site = os.path.join(parent, 'site')
scaffolder.make_scaffold('default', site)
scaffolder.make('default', site)
self.assertTrue(os.path.exists(site))

def test_copies_scaffold_to_source(self):
parent = tempfile.mkdtemp()
site = os.path.join(parent, 'site')
conf = os.path.join(site, 'source', 'handroll.conf')
scaffolder.make_scaffold('default', site)
scaffolder.make('default', site)
self.assertTrue(os.path.exists(conf))

0 comments on commit 13367d3

Please sign in to comment.