# Path: punch/vcs_configuration.py
# class VCSConfiguration(object):
#     def __init__(self, name, options, global_variables, special_variables,
#                  commit_message=None, finish_release=True,
#                  include_files=None, include_all_files=False):
#     def from_dict(cls, vcs_configuration_dict,
#                   global_variables, special_variables):


import pytest
from punch import vcs_configuration as vc
    assert vcsconf.include_all_files is True


def test_vcs_configuration_from_dict_without_commit_message(
        vcs_config_dict, global_variables, special_variables):
    vcs_config_dict.pop('commit_message')
    vcsconf = vc.VCSConfiguration.from_dict(
        vcs_config_dict,
        global_variables,
        special_variables
    )

    expected_options = {
        'make_release_branch': False,
        'annotate_tags': False,
        'annotation_message': '',
        'current_version': '1.2.3',
        'new_version': '1.3.0'
    }

    assert vcsconf.name == 'git'
    assert vcsconf.commit_message == "Version updated 1.2.3 -> 1.3.0"
    assert vcsconf.include_files == []
    assert vcsconf.finish_release is True
    assert vcsconf.options == expected_options


def test_vcs_configuration_from_dict_without_finish_release(
        vcs_config_dict, global_variables, special_variables):
    vcs_config_dict.pop('finish_release')

# Path: punch/vcs_configuration.py
# class VCSConfiguration(object):
#     def __init__(self, name, options, global_variables, special_variables,
#                  commit_message=None, finish_release=True,
#                  include_files=None, include_all_files=False):
#     def from_dict(cls, vcs_configuration_dict,
#                   global_variables, special_variables):


# Path: tests/test_vcs_configuration.py
import pytest
from punch import vcs_configuration as vc

    assert vcsconf.include_all_files is True


def test_vcs_configuration_from_dict_without_commit_message(
        vcs_config_dict, global_variables, special_variables):
    vcs_config_dict.pop('commit_message')
    vcsconf = vc.VCSConfiguration.from_dict(
        vcs_config_dict,
        global_variables,
        special_variables
    )

    expected_options = {
        'make_release_branch': False,
        'annotate_tags': False,
        'annotation_message': '',
        'current_version': '1.2.3',
        'new_version': '1.3.0'
    }

    assert vcsconf.name == 'git'
    assert vcsconf.commit_message == "Version updated 1.2.3 -> 1.3.0"
    assert vcsconf.include_files == []
    assert vcsconf.finish_release is True
    assert vcsconf.options == expected_options


def test_vcs_configuration_from_dict_without_finish_release(
        vcs_config_dict, global_variables, special_variables):
    vcs_config_dict.pop('finish_release')

    vcsconf = vc.VCSConfiguration.from_dict(