from common import exec_command def test_package(): returncode, stdout, stderr = exec_command(['dcos', 'package', '--help']) assert returncode == 0 assert stdout == b"""Usage: dcos package describe dcos package info dcos package install [--options=] dcos package list dcos package search dcos package sources dcos package uninstall dcos package update Options: -h, --help Show this screen --version Show version Configuration: [package] # Path to the local package cache. cache_dir = "/var/dcos/cache" # List of package sources, in search order. # # Three protocols are supported: # - Local file # - HTTPS # - Git sources = [ "file:///Users/me/test-registry", "https://my.org/registry", "git://github.com/mesosphere/universe.git" ] """ assert stderr == b'' def test_info(): returncode, stdout, stderr = exec_command(['dcos', 'package', 'info']) assert returncode == 0 assert stdout == b'Install and manage DCOS software packages\n' assert stderr == b'' def test_version(): returncode, stdout, stderr = exec_command(['dcos', 'package', '--version']) assert returncode == 0 assert stdout == b'dcos-package version 0.1.0\n' assert stderr == b'' def test_sources_list(): returncode, stdout, stderr = exec_command(['dcos', 'package', 'sources']) assert returncode == 0 assert stdout == b"""c3f1a0df1d2068e6b11d40224f5e500d3183a97e \ git://github.com/mesosphere/universe.git f4ba0923d14eb75c1c0afca61c2adf9b2b355bd5 \ https://github.com/mesosphere/universe/archive/master.zip """ assert stderr == b'' def test_update(): returncode, stdout, stderr = exec_command(['dcos', 'package', 'update']) assert returncode == 0 assert b'source' in stdout assert b'Validating package definitions...' in stdout assert b'OK' in stdout assert stderr == b'' def test_describe_nonexistent(): returncode, stdout, stderr = exec_command( ['dcos', 'package', 'describe', 'xyzzy']) assert returncode == 1 assert stdout == b'Package [xyzzy] not found\n' assert stderr == b'' def test_describe(): returncode, stdout, stderr = exec_command( ['dcos', 'package', 'describe', 'mesos-dns']) assert returncode == 0 assert b'description = "DNS-based service discovery for Mesos."' in stdout assert stderr == b'' def test_install(): returncode, stdout, stderr = exec_command( ['dcos', 'package', 'install', 'mesos-dns', '--options=tests/data/package/mesos-dns-config.json']) assert returncode == 0 assert stdout == b'' assert stderr == b'' def test_list(): returncode, stdout, stderr = exec_command(['dcos', 'package', 'list']) assert returncode == 0 assert stdout == b'mesos-dns [alpha]\n' assert stderr == b'' def test_search(): returncode, stdout, stderr = exec_command( ['dcos', 'package', 'search', 'framework']) assert returncode == 0 assert b'chronos' in stdout assert stderr == b'' returncode, stdout, stderr = exec_command( ['dcos', 'package', 'search', 'xyzzy']) assert returncode == 0 assert b'"packages": []' in stdout assert b'"source": "git://github.com/mesosphere/universe.git"' in stdout assert stderr == b'' def test_cleanup(): returncode, stdout, stderr = exec_command( ['dcos', 'marathon', 'remove', 'mesos-dns']) assert returncode == 0 assert stdout == b'' assert stderr == b''