source() causes the "symbols" (functions, variables) in the specified file to be loaded into the namespace/scope of the test.py file. This means that source() is the wrong tool for this problem.
(Using the trick shown by Orip, to assign the function to another symbol/name after the first source() I would advise against, since other code relying on the desired function to be available under the initial name would call the wrong function eventually.)
Using Python's import statement you can achieve that the functions are in separate namespaces, by treating the files as Python modules. For this to work you have to include the directory paths containing the desired files into Python's own "search path" - sys.path:
Contents of suite_mine/tst_testcase1/test.py:
# -*- coding: utf-8 -*-
import os.path
import sys
# Add path to our modules to the Python search path at runtime:
sys.path.append(os.path.dirname(findFile("scripts", "file1.py")))
sys.path.append(os.path.dirname(findFile("scripts", "file2.py")))
# Now import our modules:
import file1
import file2
def main():
# Access functions in our modules:
file1.do_it()
file2.do_it()
Contents of suite_mine/tst_testcase1/file1.py:
# -*- coding: utf-8 -*-
import test
def do_it():
test.log("file1.py")
Contents of suite_mine/tst_testcase1/file2.py:
# -*- coding: utf-8 -*-
import test
def do_it():
test.log("file2.py")
Resulting log entries:
file1.py
file2.py