def test_bundle_fail_missing_package_json(): common.assert_command( ['dcos', 'package', 'bundle', '--output-directory=/tmp', 'tests/data/package/missing-package-json-directory'], returncode=1, stderr=(b'The file package.json is required in the package directory ' b'[tests/data/package/missing-package-json-directory]\n')) assert not glob.glob(_PACKAGE_NAME_GLOB)
def test_bundle_fail_extra_files(): common.assert_command( ['dcos', 'package', 'bundle', '--output-directory=/tmp', 'tests/data/package/extra-files-directory'], returncode=1, stderr=(b'Error bundling package. Extra file in package directory ' b'[tests/data/package/extra-files-directory/extra-file]\n')) assert not glob.glob(_PACKAGE_NAME_GLOB)
def test_bundle_fail_invalid_package_json(): common.assert_command( ['dcos', 'package', 'bundle', '--output-directory=/tmp', 'tests/data/package/invalid-package-json-directory'], returncode=1, stderr=(b"Error validating JSON file [tests/data/package/" b"invalid-package-json-directory/package.json]\n" b"Error: missing required property 'version'.\n")) assert not glob.glob(_PACKAGE_NAME_GLOB)
def test_bundle_fail_non_png_screenshots(): common.assert_command( ['dcos', 'package', 'bundle', '--output-directory=/tmp', 'tests/data/package/non-png-screenshots-directory'], returncode=1, stderr=(b'Unable to validate [tests/data/package/' b'non-png-screenshots-directory/images/screenshots/' b'non-png.png] as a PNG file\n')) assert not glob.glob(_PACKAGE_NAME_GLOB)
def test_bundle_fail_invalid_command_json(): common.assert_command( ['dcos', 'package', 'bundle', '--output-directory=/tmp', 'tests/data/package/invalid-command-json-directory'], returncode=1, stderr=(b'Error validating JSON file [tests/data/package/' b'invalid-command-json-directory/command.json]\n' b'Error: {\'apt-get\': \'invalid command\'} is not valid ' b'under any of the given schemas\n' b'Value: {"apt-get": "invalid command"}\n')) assert not glob.glob(_PACKAGE_NAME_GLOB)
def test_bundle_fail_invalid_config_json(): common.assert_command( ['dcos', 'package', 'bundle', '--output-directory=/tmp', 'tests/data/package/invalid-config-json-directory'], returncode=1, stderr=(b'Error validating JSON file [tests/data/package/' b'invalid-config-json-directory/config.json]\n' b'Error: 42 is not valid under any of the given schemas\n' b'Path: type\n' b'Value: 42\n')) 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'))