Exemplo n.º 1
0
def create_mock_environment(source_config=None,
                            target_config=None,
                            installed=False,
                            global_config=MOCK_GLOBAL_CONFIGURATION,
                            root=None,
                            mock_injections=True,
                            mock_global_injections=True,
                            mock_system=True,
                            mock_directory=True):
    """ Create and return a mock environment instance """
    environment = Environment(global_config=global_config,
                              write_files=False,
                              root=root)
    environment.source = (None if not source_config else
                          Manifest(StringIO(source_config), namespace="test"))
    environment.target = (None if not target_config else
                          Manifest(StringIO(target_config), namespace="test"))
    # mocking directory
    if mock_directory:
        environment.directory = Mock(spec=environment.directory)
        environment.directory.bin_path.return_value = "dummy"
        environment.directory.install_directory.return_value = "/tmp/"
        environment.directory.new = not installed
    # mocking injections
    if mock_injections:
        environment.injections = Mock(spec=Injections)
    # mocking global injections
    if mock_global_injections:
        environment.global_injections = Mock(spec=Injections)
    # mocking system (we will always test as if the system is debian, unless explicitly specified)
    if mock_system:
        environment.system = Mock(spec=environment.system)
        environment.system.isDebianBased.return_value = True
        environment.system.isOSX.return_value = False
        environment.system.isFedoraBased.return_value = False
    environment.write_manifest = Mock()
    return environment