def create_fake_vlan(path, switch_ip, fake_vlan_name, vlan_id, cookie_header=None): if cookie_header is None: cookie_header = login(switch_ip) data = FAKE_VLAN_DATA % {"name": fake_vlan_name, "id": vlan_id} info("\n---------- Creating fake vlan (%s) ----------\n" % fake_vlan_name) info("Testing Path: %s\nTesting Data: %s\n" % (path, data)) response_status, response_data = execute_request(path, "POST", data, switch_ip, xtra_header=cookie_header) assert response_status == httplib.CREATED, \ "Response status received: %s\n" % response_status info("Fake VLAN \"%s\" created!\n" % fake_vlan_name) assert response_data is "", \ "Response data received: %s\n" % response_data info("Response data received: %s\n" % response_data) info("---------- Creating fake vlan (%s) DONE ----------\n" % fake_vlan_name)
def create_fake_bridge(path, switch_ip, fake_bridge_name, cooie_header=None): if cookie_header is None: cookie_header = login(switch_ip) data = FAKE_BRIDGE_DATA % fake_bridge_name info("\n---------- Creating fake bridge (%s) ----------\n" % fake_bridge_name) info("Testing path: %s\nTesting data: %s\n" % (path, data)) response_status, response_data = execute_request(path, "POST", data, switch_ip, xtra_header=cookie_header) assert response_status == httplib.CREATED, \ "Response status: %s\n" % response_status info("Bridge \"%s\" created!\n" % fake_bridge_name) assert response_data is "", \ "Response data received: %s\n" % response_data info("Response data received: %s\n" % response_data) info("---------- Creating fake bridge (%s) DONE ----------\n" % fake_bridge_name)
def admin_login(request): switch_ip = request.cls.test_var.SWITCH_IP ops_admin_user = request.cls.test_var.OPS_ADMIN_USER ops_admin_pass = request.cls.test_var.OPS_ADMIN_PASS request.cls.test_var.cookie_header = login(switch_ip, username=ops_admin_user, password=ops_admin_pass)
def change_password_successful_change(self): ''' Assuming the user is logged in, attempt to change their password with all correct data ''' test_title = "attempt password change with correct data" info(TEST_START % test_title) # Initialize test data newpassword = '******' data = { 'configuration': { 'password': DEFAULT_PASSWORD, 'new_password': newpassword } } # Attempt to change password status_code, response_data = \ execute_request(ACCOUNT_URI, "PUT", json.dumps(data), self.SWITCH_IP, xtra_header=self.cookie_header) assert status_code == httplib.OK, "Wrong status code %s " % status_code # Attempt a login with the new password self.cookie_header = login(self.SWITCH_IP, password=newpassword) # Change password back to default data['configuration']['password'] = newpassword data['configuration']['new_password'] = DEFAULT_PASSWORD status_code, response_data = \ execute_request(ACCOUNT_URI, "PUT", json.dumps(data), self.SWITCH_IP, xtra_header=self.cookie_header) assert status_code == httplib.OK, "Wrong status code %s " % status_code info(TEST_END % test_title)
def post_setup(self, cookie_header=None): if cookie_header is None: cookie_header = login(self.SWITCH_IP) status_code, response_data = execute_request( self.path_bgp, "POST", json.dumps(_DATA), self.SWITCH_IP, False, xtra_header=cookie_header) assert status_code == httplib.CREATED, ("Wrong status code %s " % status_code)
def delete_teardown(self, cookie_header=None): if cookie_header is None: cookie_header = login(self.SWITCH_IP) status_code, response_data = execute_request( self.path_id, "DELETE", None, self.SWITCH_IP, False, xtra_header=cookie_header) assert (status_code == httplib.NO_CONTENT or status_code == httplib.NOT_FOUND), ("Wrong status code %s " % status_code)
def create_test_port(request): switch_ip = request.cls.test_var.SWITCH_IP port_path = request.cls.test_var.PORT_PATH default_port_path = request.cls.test_var.DEFAULT_PORT_PATH test_port_path = request.cls.test_var.TEST_PORT_PATH test_port_name = test_port_path.split("/")[-1] # Login with default authorized user cookie_header = login(switch_ip) # Get default port data status_code, response_data = \ execute_request(default_port_path, "GET", None, switch_ip, xtra_header=cookie_header) assert status_code == httplib.OK, "Could not get default port data, " + \ "status code: %s, data: %s" % (status_code, response_data) data = get_json(response_data) assert 'configuration' in data, "Corrupt default port data" data['configuration']['name'] = test_port_name data = { 'configuration': data['configuration'], "referenced_by": [{ "uri": "/rest/v1/system/bridges/bridge_normal" }] } # Save the port data request.cls.test_var.port_data = data # Create the test port status_code, response_data = \ execute_request(port_path, "POST", json.dumps(data), switch_ip, xtra_header=cookie_header) assert status_code == httplib.CREATED, "Unable to create test port, " + \ "Status code: %s Response data: %s " % (status_code, response_data) def fin(): status_code, response_data = \ execute_request(test_port_path, "DELETE", None, switch_ip, xtra_header=cookie_header) assert status_code in [httplib.NO_CONTENT, httplib.NOT_FOUND], \ "Unable to delete test port. Status code: %s Response data: %s" % \ (status_code, response_data) request.addfinalizer(fin)
def validate_request(self, switch_ip, path, data, op, expected_code, expected_data): cookie_header = login(switch_ip) status_code, response_data = execute_request(path, op, data, switch_ip, xtra_header=cookie_header) assert status_code == expected_code, \ "Wrong status code %s " % status_code # info("### Status code is OK ###\n") assert response_data is not expected_data, \ "Response data received: %s\n" % response_data # info("### Response data received: %s ###\n" % response_data) try: json_data = json.loads(response_data) except: assert False, "Malformed JSON" return json_data
def create_fake_port(path, switch_ip, port_index, cookie_header=None): if cookie_header is None: cookie_header = login(switch_ip) data = FAKE_PORT_DATA % {"index": port_index} info("\n---------- Creating fake port (%s) ----------\n" % port_index) info("Testing path: %s\nTesting data: %s\n" % (path, data)) response_status, response_data = execute_request(path, "POST", data, switch_ip, xtra_header=cookie_header) assert response_status == httplib.CREATED, \ "Response status received: %s\n" % response_status info("Fake port \"%s\" created!\n" % port_index) assert response_data is "", \ "Response data received: %s\n" % response_data info("Response data: %s\n" % response_data) info("---------- Creating fake port (%s) DONE ----------\n" % port_index)
def netop_login(request): request.cls.test_var.cookie_header = login(request.cls.test_var.SWITCH_IP)
def netop_login(request): request.cls.test_var.cookie_header = login(request.cls.test_var.switch_ip)