abhimanyue
abhimanyue

Reputation: 186

How to write a simple test code to test a python program that has a function with two arguments?

I'm new in python, I have written a python program that reads a list of files and saves the total number of a particular character (ch) in a dictionary and then returns it.

The program works fine, now I'm trying to write a simple test code to test the program.

I tried with the following code,

def test_read_files():
    assert read_files("H:\\SomeTextFiles\\zero-k.txt", 'k') == 0, "Should be 0"

if __name__ == "__main__":
    test_read_files()
    print("Everything passed")

I named the program as test_read_files.py

My python code is as follows:

# This function reads a list of files and saves number of
# a particular character (ch) in dictionary and returns it.

def read_files(filePaths, ch):

    # dictionary for saing no of character's in each file
    dictionary = {}
    
    for filePath in filePaths:

        try:
            # using "with statement" with open() function
            with open(filePath, "r") as file_object:
                # read file content
                fileContent = file_object.read()
                dictionary[filePath] = fileContent.count(ch)
            
        except Exception:
            # handling exception
            print('An Error with opening the file '+filePath)
            dictionary[filePath] = -1

    return dictionary


fileLists = ["H:\\SomeTextFiles\\16.txt", "H:\\SomeTextFiles\\Statement1.txt",
             "H:\\SomeTextFiles\\zero-k.txt", "H:\\SomeTextFiles"]

print(read_files(fileLists, 'k'))

I named it as read_files.py

When I run the test code, getting an error: NameError: name 'read_files' is not defined

The program and the test code all are in the same folder (different than the python folder though).

Upvotes: 0

Views: 37

Answers (1)

MiTriPy
MiTriPy

Reputation: 229

Hopefully I am understanding this correctly, but if both of you python files:

  1. test_read_files.py
  2. read_files.py

Are in the same directory.. Then you should be able to just add at the top of the test_read_files.py the following import command:

from read_files import read_files

This will import the read_files function from your read_files.py script and that way you will be able to run it inside the other file.

Upvotes: 1

Related Questions