Robot framework keywords are showing "No keyword with name xyz"

89 Views Asked by At

I am new to robot framework and python, I am facing problem with the keywords, which shows me the error No keyword with name xyz. For an example in file csv_handler.py

import all library and key words

class csv_handler:
    @keyword("Extract text from CSV file")
    def extract_text_from_CSV_file(self, file_name):
        execution_mode = BuiltIn().get_variable_value("${EXECUTION_MODE}")
        download_folder = config_file[execution_mode]["download_folder"]
        userName = getpass.getuser()
        localUserName = userName.strip("adm-")
        download_folder = download_folder.replace("<local_user>", localUserName)
        data = []
        with open(download_folder.strip() + file_name, 'r') as csvfile:
            reader = csv.reader(csvfile)
            for row in reader:
                data.append(row)
        return data

I need a new keyword in the file csv_handler.py so I just copy the old keyword and did some modification to it made the new keyword. Now the new file looks like

import all library and key words

class csv_handler:
    @keyword("Extract text from CSV file")
    def extract_text_from_CSV_file(self, file_name):
        execution_mode = BuiltIn().get_variable_value("${EXECUTION_MODE}")
        download_folder = config_file[execution_mode]["download_folder"]
        userName = getpass.getuser()
        localUserName = userName.strip("adm-")
        download_folder = download_folder.replace("<local_user>", localUserName)
        data = []
        with open(download_folder.strip() + file_name, 'r') as csvfile:
            reader = csv.reader(csvfile)
            for row in reader:
                data.append(row)
        return data

    @keyword("Extract text from created CSV file")
    def extract_text_from_CSV_file(self, file_name):
        execution_mode = BuiltIn().get_variable_value("${EXECUTION_MODE}")
        cwd = os.getcwd()
        upload_folder = cwd + config_file[execution_mode]["upload_folder"]
        userName = getpass.getuser()
        localUserName = userName.strip("adm-")
        upload_folder = upload_folder.replace("<local_user>", localUserName)
        data = []
        with open(upload_folder.strip() + file_name, 'r') as csvfile:
            reader = csv.reader(csvfile)
            for row in reader:
                data.append(row)
        return data
    

After making my new keyword in the file csv_handler.py , if I go to the .robot file and try to run the test script the test script where I used the old key word, that throws me error "No keyword with name old keyword" and for the result script fails.

I tried to restart my vscode, laptop but not got chance to fix it. Your help will be appriciated. Thank you.

0

There are 0 best solutions below