old_contents: # -*- coding: utf-8 -*-
  
  import os
  import re
  import sh
  
  import pytest
  from binaryornot.check import is_binary
  
  PATTERN = '{{(\s?cookiecutter)[.](.*?)}}'
  RE_OBJ = re.compile(PATTERN)
  
  
  @pytest.fixture
  def context():
      return {
          'project_name': 'My Test Project',
          'repo_name': 'my_test_project',
          'author_name': 'Test Author',
          'email': 'test@example.com',
          'description': 'A short description of the project.',
          'domain_name': 'example.com',
          'version': '0.1.0',
          'timezone': 'UTC',
          'now': '2015/01/13',
          'year': '2015'
      }
  
  
  def build_files_list(root_dir):
      """Build a list containing absolute paths to the generated files."""
      return [
          os.path.join(dirpath, file_path)
          for dirpath, subdirs, files in os.walk(root_dir)
          for file_path in files
      ]
  
  
  def check_paths(paths):
      """Method to check all paths have correct substitutions,
      used by other tests cases
      """
      # Assert that no match is found in any of the files
      for path in paths:
          if is_binary(path):
              continue
          for line in open(path, 'r'):
              match = RE_OBJ.search(line)
              msg = 'cookiecutter variable not replaced in {}'
              assert match is None, msg.format(path)
  
  
  def test_default_configuration(cookies, context):
      result = cookies.bake(extra_context=context)
      assert result.exit_code == 0
      assert result.exception is None
      assert result.project.basename == context['repo_name']
      assert result.project.isdir()
  
      paths = build_files_list(str(result.project))
      assert paths
      check_paths(paths)
  
  
  @pytest.fixture(params=['use_mailhog', 'use_celery', 'windows'])
  def feature_context(request, context):
      context.update({request.param: 'y'})
      return context
  
  
  def test_enabled_features(cookies, feature_context):
      result = cookies.bake(extra_context=feature_context)
      assert result.exit_code == 0
      assert result.exception is None
      assert result.project.basename == feature_context['repo_name']
      assert result.project.isdir()
  
      paths = build_files_list(str(result.project))
      assert paths
      check_paths(paths)
  
  
  def test_flake8_compliance(cookies):
      """generated project should pass flake8"""
      result = cookies.bake()
  
      try:
          sh.flake8(str(result.project))
      except sh.ErrorReturnCode as e:
          pytest.fail(e)
  
new_contents: # -*- coding: utf-8 -*-
  
  import os
  import re
  import sh
  
  import pytest
  from binaryornot.check import is_binary
  
  PATTERN = '{{(\s?cookiecutter)[.](.*?)}}'
  RE_OBJ = re.compile(PATTERN)
  
  
  @pytest.fixture
  def context():
      return {
          'project_name': 'My Test Project',
          'project_slug': 'my_test_project',
          'author_name': 'Test Author',
          'email': 'test@example.com',
          'description': 'A short description of the project.',
          'domain_name': 'example.com',
          'version': '0.1.0',
          'timezone': 'UTC',
          'now': '2015/01/13',
          'year': '2015'
      }
  
  
  def build_files_list(root_dir):
      """Build a list containing absolute paths to the generated files."""
      return [
          os.path.join(dirpath, file_path)
          for dirpath, subdirs, files in os.walk(root_dir)
          for file_path in files
      ]
  
  
  def check_paths(paths):
      """Method to check all paths have correct substitutions,
      used by other tests cases
      """
      # Assert that no match is found in any of the files
      for path in paths:
          if is_binary(path):
              continue
          for line in open(path, 'r'):
              match = RE_OBJ.search(line)
              msg = 'cookiecutter variable not replaced in {}'
              assert match is None, msg.format(path)
  
  
  def test_default_configuration(cookies, context):
      result = cookies.bake(extra_context=context)
      assert result.exit_code == 0
      assert result.exception is None
      assert result.project.basename == context['repo_name']
      assert result.project.isdir()
  
      paths = build_files_list(str(result.project))
      assert paths
      check_paths(paths)
  
  
  @pytest.fixture(params=['use_mailhog', 'use_celery', 'windows'])
  def feature_context(request, context):
      context.update({request.param: 'y'})
      return context
  
  
  def test_enabled_features(cookies, feature_context):
      result = cookies.bake(extra_context=feature_context)
      assert result.exit_code == 0
      assert result.exception is None
      assert result.project.basename == feature_context['repo_name']
      assert result.project.isdir()
  
      paths = build_files_list(str(result.project))
      assert paths
      check_paths(paths)
  
  
  def test_flake8_compliance(cookies):
      """generated project should pass flake8"""
      result = cookies.bake()
  
      try:
          sh.flake8(str(result.project))
      except sh.ErrorReturnCode as e:
          pytest.fail(e)
  
subject: Update test fixture to use project_slug, not repo_name