149 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			149 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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 <package_name>
 | |
|     dcos package info
 | |
|     dcos package install [--options=<options_file>] <package_name>
 | |
|     dcos package list
 | |
|     dcos package search <query>
 | |
|     dcos package sources
 | |
|     dcos package uninstall <package_name>
 | |
|     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''
 | 
