Merge pull request #293 from burhan/tests-update

Updating the tests
This commit is contained in:
Daniel Greenfeld 2015-08-08 12:53:58 -07:00
commit 1d8c56af3e
2 changed files with 32 additions and 14 deletions

View File

@ -1,4 +1,5 @@
import os import os
import re
import shutil import shutil
import unittest import unittest
from os.path import exists, dirname, join from os.path import exists, dirname, join
@ -14,6 +15,23 @@ class DjangoCookieTestCase(unittest.TestCase):
ctx = {} ctx = {}
destpath = None destpath = None
def check_paths(self, paths):
"""
Method to check all paths have correct substitutions,
used by other tests cases
"""
# Construct the cookiecutter search pattern
pattern = "{{(\s?cookiecutter)[.](.*?)}}"
re_obj = re.compile(pattern)
# Assert that no match is found in any of the files
for path in paths:
for line in open(path, 'r'):
match = re_obj.search(line)
self.assertIsNone(
match,
"cookiecutter variable not replaced in {}".format(path))
def generate_project(self, extra_context=None): def generate_project(self, extra_context=None):
ctx = { ctx = {
"project_name": "My Test Project", "project_name": "My Test Project",

View File

@ -1,5 +1,4 @@
import re from __future__ import absolute_import
import sh import sh
from .base import DjangoCookieTestCase from .base import DjangoCookieTestCase
@ -8,23 +7,24 @@ from .base import DjangoCookieTestCase
class TestCookiecutterSubstitution(DjangoCookieTestCase): class TestCookiecutterSubstitution(DjangoCookieTestCase):
"""Test that all cookiecutter instances are substituted""" """Test that all cookiecutter instances are substituted"""
def test_all_cookiecutter_instances_are_substituted(self): def test_default_configuration(self):
# Build a list containing absolute paths to the generated files # Build a list containing absolute paths to the generated files
paths = self.generate_project() paths = self.generate_project()
self.check_paths(paths)
# Construct the cookiecutter search pattern def test_maildump_enabled(self):
pattern = "{{(\s?cookiecutter)[.](.*?)}}" paths = self.generate_project(extra_context={'use_maildump': 'y'})
re_obj = re.compile(pattern) self.check_paths(paths)
# Assert that no match is found in any of the files def test_celery_enabled(self):
for path in paths: paths = self.generate_project(extra_context={'use_celery': 'y'})
for line in open(path, 'r'): self.check_paths(paths)
match = re_obj.search(line)
self.assertIsNone(
match,
"cookiecutter variable not replaced in {}".format(path))
def test_flake8_complaince(self): def test_windows_enabled(self):
paths = self.generate_project(extra_context={'windows': 'y'})
self.check_paths(paths)
def test_flake8_compliance(self):
"""generated project should pass flake8""" """generated project should pass flake8"""
self.generate_project() self.generate_project()
try: try: