def test_bundle_good_package(): with _clean_package_file(_PACKAGE_NAME_GLOB): returncode, stdout, stderr = common.exec_command( ['dcos', 'package', 'bundle', '--output-directory=/tmp', 'tests/data/package/create-directory']) assert returncode == 0 assert stdout == b'' assert stderr.decode('utf-8').startswith( 'Created DCOS Universe package ') with zipfile.ZipFile( 'tests/data/package/cassandra.zip', 'r') as expected: with zipfile.ZipFile( glob.glob(_PACKAGE_NAME_GLOB)[0], 'r') as actual: for expected_file, actual_file in zip( sorted( expected.infolist(), key=lambda x: x.filename), sorted( actual.infolist(), key=lambda x: x.filename)): assert expected_file.filename == actual_file.filename assert expected_file.file_size == actual_file.file_size
def test_bundle_fail_missing_output_directory(): returncode, stdout, stderr = common.exec_command( ['dcos', 'package', 'bundle', '--output-directory=/temp', 'tests/data/package/create-directory']) assert returncode == 1 assert stdout == b'' assert stderr.decode('utf-8').startswith( 'No such file or directory: /temp/cassandra-0.2.0-1-') assert not glob.glob(_PACKAGE_NAME_GLOB)
def test_bundle_fail_output_not_directory(): with tempfile.NamedTemporaryFile() as temp_file: returncode, stdout, stderr = common.exec_command( ['dcos', 'package', 'bundle', '--output-directory={}'.format(temp_file.name), 'tests/data/package/create-directory']) assert returncode == 1 assert stdout == b'' assert stderr.decode('utf-8').startswith( 'Not a directory: {}/cassandra-0.2.0-1-'.format(temp_file.name)) assert not glob.glob(_PACKAGE_NAME_GLOB)
def test_bundle_fail_overwrite_existing_file(): with _clean_package_file(_PACKAGE_NAME_GLOB): returncode, stdout, stderr = common.exec_command( ['dcos', 'package', 'bundle', '--output-directory=/tmp', 'tests/data/package/create-directory']) assert returncode == 0 assert stdout == b'' assert stderr.decode('utf-8').startswith( 'Created DCOS Universe package ') common.assert_command( ['dcos', 'package', 'bundle', '--output-directory=/tmp', 'tests/data/package/create-directory'], returncode=1, stderr='Output file [{}] already exists\n'.format( glob.glob(_PACKAGE_NAME_GLOB)[0]).encode('utf-8'))