def test_ChuteApi_get_chutes(ChuteStorage, ChuteContainer): update_manager = MagicMock() api = chute_api.ChuteApi(update_manager) request = MagicMock() container = MagicMock() container.getStatus.return_value = "running" ChuteContainer.return_value = container storage = MagicMock() ChuteStorage.return_value = storage chute = MagicMock() chute.environment = {} chute.name = "test" chute.resources = {} chute.version = 5 chute.get_owner.return_value = "paradrop" storage.getChuteList.return_value = [chute] data = api.get_chutes(request) assert isinstance(data, basestring) result = json.loads(data) assert result[0]['name'] == chute.name assert result[0]['version'] == chute.version
def test_ChuteApi_get_chute(ChuteStorage, ChuteContainer): update_manager = MagicMock() api = chute_api.ChuteApi(update_manager) request = MagicMock() request.user = User.get_internal_user() container = MagicMock() container.getStatus.return_value = "running" ChuteContainer.return_value = container chute = MagicMock() chute.name = "test" chute.version = 5 chute.environment = {} chute.resources = {} ChuteStorage.chuteList = {"test": chute} data = api.get_chute(request, chute.name) assert isinstance(data, basestring) result = json.loads(data) assert result['name'] == chute.name assert result['version'] == chute.version
def test_ChuteApi_get_chute_cache(ChuteStorage): update_manager = MagicMock() update_manager.assign_change_id.return_value = 1 api = chute_api.ChuteApi(update_manager) chute = MagicMock() chute.getCacheContents.return_value = {} ChuteStorage.chuteList = {"test": chute} request = MagicMock() result = api.get_chute_cache(request, "test") assert result == "{}"
def __init__(self): self.update_manager = MagicMock() self.update_manager.assign_change_id.return_value = 1 self.api = chute_api.ChuteApi(self.update_manager) self.interface = { 'name': 'testing', 'netType': 'wifi', 'internalIntf': 'wlan0', 'externalIntf': 'vwlan0' } chute = {'name': 'test', 'web': {'port': 5000}} self.chute = Chute(chute) self.chute.setCache("externalSystemDir", "/tmp") self.chute.setCache("networkInterfaces", [self.interface])
def test_ChuteApi_create_chute(): update_manager = MagicMock() update_manager.assign_change_id.return_value = 1 api = chute_api.ChuteApi(update_manager) body = {'config': {}} request = MagicMock() request.content.read.return_value = json.dumps(body) data = api.create_chute(request) assert isinstance(data, basestring) result = json.loads(data) assert result['change_id'] == 1 assert update_manager.add_update.called
def __init__(self): self.update_manager = MagicMock() self.update_manager.assign_change_id.return_value = 1 self.api = chute_api.ChuteApi(self.update_manager) self.interface = { 'name': 'testing', 'type': 'wifi', 'internalIntf': 'wlan0', 'externalIntf': 'vwlan0' } chute = Chute(name="test") chute.setCache("networkInterfaces", [self.interface]) chute.setCache("externalSystemDir", "/tmp") chute.config = {"web": {"port": 5000}} self.chute = chute
def test_ChuteApi_get_networks(ChuteStorage): update_manager = MagicMock() update_manager.assign_change_id.return_value = 1 api = chute_api.ChuteApi(update_manager) iface = {'name': 'vwlan0', 'netType': 'wifi', 'internalIntf': 'wlan0'} chute = Chute(dict(name="test")) chute.setCache("networkInterfaces", [iface]) ChuteStorage.chuteList = {"test": chute} request = MagicMock() result = api.get_networks(request, "test") data = json.loads(result) assert len(data) == 1 assert data[0]['name'] == iface['name'] assert data[0]['type'] == iface['netType'] assert data[0]['interface'] == iface['internalIntf']
def test_ChuteApi_update_chute_tarfile(extract_tarred_chute): update_manager = MagicMock() update_manager.assign_change_id.return_value = 1 api = chute_api.ChuteApi(update_manager) request = MagicMock() request.requestHeaders.getRawHeaders.return_value = ["application/x-tar"] request.user = User.get_internal_user() # Case 1: should work normally. workdir = "/tmp/test" paradrop_yaml = {'name': 'chute'} extract_tarred_chute.return_value = (workdir, paradrop_yaml) data = api.update_chute(request, "chute") assert isinstance(data, basestring) result = json.loads(data) assert result['change_id'] == 1 assert update_manager.add_update.called # Case 2: deprecated way of declaring name, but should still work. workdir = "/tmp/test" paradrop_yaml = {'config': {'name': 'chute'}} extract_tarred_chute.return_value = (workdir, paradrop_yaml) data = api.update_chute(request, "chute") assert isinstance(data, basestring) result = json.loads(data) assert result['change_id'] == 1 assert update_manager.add_update.called # Case 3: missing name, should raise exception. workdir = "/tmp/test" paradrop_yaml = {} extract_tarred_chute.return_value = (workdir, paradrop_yaml) assert_raises(Exception, api.update_chute, request, "chute")
def test_ChuteApi_operations(): update_manager = MagicMock() update_manager.assign_change_id.return_value = 1 api = chute_api.ChuteApi(update_manager) body = {'config': {}} request = MagicMock() request.content.read.return_value = json.dumps(body) functions = [ api.update_chute, api.stop_chute, api.start_chute, api.restart_chute, api.delete_chute ] for func in functions: print("Calling ChuteApi {}".format(func.__name__)) data = func(request, "test") assert isinstance(data, basestring) result = json.loads(data) assert result['change_id'] == 1
def test_ChuteApi_get_network(ChuteStorage): update_manager = MagicMock() update_manager.assign_change_id.return_value = 1 api = chute_api.ChuteApi(update_manager) iface = {'name': 'vwlan0', 'type': 'wifi', 'internalIntf': 'wlan0'} chute = Chute(name="test") chute.setCache("networkInterfaces", [iface]) ChuteStorage.chuteList = {"test": chute} request = MagicMock() request.user = User.get_internal_user() result = api.get_network(request, "test", "nomatch") assert result == "{}" result = api.get_network(request, "test", "vwlan0") data = json.loads(result) assert data['name'] == iface['name'] assert data['type'] == iface['type'] assert data['interface'] == iface['internalIntf']