def test_list_active_packages(): _set_test_config(app) client = app.test_client() packages = json.loads(client.get('/active/').data.decode('utf-8')) assert packages == [ 'mesos--0.22.0', 'mesos-config--ffddcfb53168d42f92e4771c6f8a8a9a818fd6b8']
def test_list_active_packages(): _set_test_config(app) client = app.test_client() packages = json.loads(client.get('/active/').data.decode('utf-8')) assert packages == [ 'mesos--0.22.0', 'mesos-config--ffddcfb53168d42f92e4771c6f8a8a9a818fd6b8' ]
def test_list_packages(): _set_test_config(app) client = app.test_client() assert_json_response(client.get('/repository/'), 200, [ 'mesos--0.22.0', 'mesos--0.23.0', 'mesos-config--ffddcfb53168d42f92e4771c6f8a8a9a818fd6b8', 'mesos-config--justmesos', ])
def test_get_package(): _set_test_config(app) client = app.test_client() assert_json_response(client.get('/repository/mesos--0.22.0'), 200, { 'id': 'mesos--0.22.0', 'name': 'mesos', 'version': '0.22.0', }) # Get nonexistent package. assert_error(client.get('/repository/nonexistent-package--fakeversion'), 404) assert_error(client.get('/repository/package---version'), 404) assert_error(client.get('/repository/packageversion'), 404) assert_error(client.get('/repository/!@#*'), 404)
def test_get_active_package(): _set_test_config(app) client = app.test_client() assert_json_response(client.get('/active/mesos--0.22.0'), 200, { 'id': 'mesos--0.22.0', 'name': 'mesos', 'version': '0.22.0', }) # Get nonexistent package. assert_error(client.get('/active/mesos--0.23.0'), 404) assert_error(client.get('/active/package---version'), 404) assert_error(client.get('/active/packageversion'), 404) assert_error(client.get('/active/!@#*'), 404)
def test_activate_packages(tmpdir): _set_test_config(app) install_dir = str(tmpdir.join('install')) copytree(resources_test_dir('install'), install_dir, symlinks=True) app.config['DCOS_ROOT'] = install_dir app.config['DCOS_ROOTED_SYSTEMD'] = True client = app.test_client() # Upgrade from mesos--0.22.0 to mesos--0.23.0. old_packages = [ 'mesos--0.22.0', 'mesos-config--ffddcfb53168d42f92e4771c6f8a8a9a818fd6b8', ] new_packages = [ 'mesos--0.23.0', 'mesos-config--ffddcfb53168d42f92e4771c6f8a8a9a818fd6b8', ] assert_json_response(client.get('/active/'), 200, old_packages) assert_response( client.put( '/active/', content_type='application/json', data=json.dumps(new_packages), ), 204, b'', ) assert_json_response(client.get('/active/'), 200, new_packages) # mesos--0.23.0 expects to have a state directory. assert os.path.isdir(app.config['DCOS_STATE_DIR_ROOT'] + '/mesos') # Attempt to activate nonexistent packages. nonexistent_packages = [ 'nonexistent-package--fakeversion1', 'nonexistent-package--fakeversion2', ] assert_error( client.put( '/active/', content_type='application/json', data=json.dumps(['mesos--0.23.0'] + nonexistent_packages), ), 409, missing_packages=sorted(nonexistent_packages), )
def test_remove_package(tmpdir): _set_test_config(app) repo_dir = str(tmpdir.join('repo')) copytree(resources_test_dir('packages'), repo_dir) app.config['DCOS_REPO_DIR'] = repo_dir client = app.test_client() # Successful deletion. package_to_delete = 'mesos--0.23.0' assert_json_response( client.get('/repository/'), 200, package_to_delete, body_cmp=lambda response_body, package: package in response_body, ) assert_response(client.delete('/repository/' + package_to_delete), 204, b'') assert_json_response( client.get('/repository/'), 200, package_to_delete, body_cmp=lambda response_body, package: package not in response_body, ) # Attempted deletion of active package. package_to_delete = 'mesos--0.22.0' assert_json_response( client.get('/active/'), 200, package_to_delete, body_cmp=lambda response_body, package: package in response_body, ) assert_error(client.delete('/repository/' + package_to_delete), 409) assert_json_response( client.get('/active/'), 200, package_to_delete, body_cmp=lambda response_body, package: package in response_body, ) # Attempted deletion of nonexistent package. assert_error(client.delete('/repository/nonexistent-package--fakeversion'), 404) assert_error(client.delete('/repository/invalid---package'), 404)
def test_fetch_package(tmpdir): _set_test_config(app) client = app.test_client() app.config['DCOS_REPO_DIR'] = str(tmpdir) # Successful package fetch. assert_json_response(client.get('/repository/'), 200, []) assert_response( client.post( '/repository/mesos--0.22.0', content_type='application/json', data=json.dumps({ 'repository_url': 'file://{}/{}/'.format(os.getcwd(), resources_test_dir('remote_repo')) }), ), 204, b'', ) assert_json_response(client.get('/repository/'), 200, ['mesos--0.22.0']) # No repository URL provided. assert_error( client.post( '/repository/mesos--0.23.0', content_type='application/json', data=json.dumps({}), ), 400, ) # Invalid package ID. assert_error( client.post( '/repository/invalid---package', content_type='application/json', data=json.dumps({ 'repository_url': 'file://{}/'.format(resources_test_dir('remote_repo')) }), ), 400, )
def test_remove_package(tmpdir): _set_test_config(app) repo_dir = str(tmpdir.join('repo')) copytree('../resources/packages', repo_dir) app.config['DCOS_REPO_DIR'] = repo_dir client = app.test_client() # Successful deletion. package_to_delete = 'mesos--0.23.0' assert_json_response( client.get('/repository/'), 200, package_to_delete, body_cmp=lambda response_body, package: package in response_body, ) assert_response(client.delete('/repository/' + package_to_delete), 204, b'') assert_json_response( client.get('/repository/'), 200, package_to_delete, body_cmp=lambda response_body, package: package not in response_body, ) # Attempted deletion of active package. package_to_delete = 'mesos--0.22.0' assert_json_response( client.get('/active/'), 200, package_to_delete, body_cmp=lambda response_body, package: package in response_body, ) assert_error(client.delete('/repository/' + package_to_delete), 409) assert_json_response( client.get('/active/'), 200, package_to_delete, body_cmp=lambda response_body, package: package in response_body, ) # Attempted deletion of nonexistent package. assert_error(client.delete('/repository/nonexistent-package--fakeversion'), 404) assert_error(client.delete('/repository/invalid---package'), 404)
def test_fetch_package(tmpdir): _set_test_config(app) client = app.test_client() app.config['DCOS_REPO_DIR'] = str(tmpdir) # Successful package fetch. assert_json_response(client.get('/repository/'), 200, []) assert_response( client.post( '/repository/mesos--0.22.0', content_type='application/json', data=json.dumps({ 'repository_url': 'file://{}/../resources/remote_repo'.format(os.getcwd()) }), ), 204, b'', ) assert_json_response(client.get('/repository/'), 200, ['mesos--0.22.0']) # No repository URL provided. assert_error( client.post( '/repository/mesos--0.23.0', content_type='application/json', data=json.dumps({}), ), 400, ) # Invalid package ID. assert_error( client.post( '/repository/invalid---package', content_type='application/json', data=json.dumps({ 'repository_url': 'file://{}/../resources/remote_repo'.format(os.getcwd()) }), ), 400, )